diff --git a/pytest.ini b/pytest.ini index 3a29aa54a2..42aec687ae 100644 --- a/pytest.ini +++ b/pytest.ini @@ -40,10 +40,12 @@ markers = find help interface + igmp lpm mac namespace route + mroute show sqcmds summarize @@ -133,6 +135,7 @@ markers = nxos panos vmx + multicast # misc recursive @@ -149,11 +152,13 @@ markers = evpnVni fs ifCounters + igmp interfaces inventory lldp macs mlag + mroute network ospf ospfIf diff --git a/suzieq/cli/sqcmds/IgmpCmd.py b/suzieq/cli/sqcmds/IgmpCmd.py new file mode 100644 index 0000000000..fbdfa7f9d8 --- /dev/null +++ b/suzieq/cli/sqcmds/IgmpCmd.py @@ -0,0 +1,43 @@ +from nubia import command +from suzieq.cli.nubia_patch import argument + +from suzieq.cli.sqcmds.command import SqTableCommand +from suzieq.sqobjects.igmp import IgmpObj + + +@command("igmp", help="Act on Igmp") +@argument("vrf", description="VRF(s), space separated") +@argument("group", description="Group(s), in quotes, space separated") +class IgmpCmd(SqTableCommand): + """IGMP table information""" + + def __init__( + self, + engine: str = "", + hostname: str = "", + start_time: str = "", + end_time: str = "", + view: str = "", + namespace: str = "", + format: str = "", # pylint: disable=redefined-builtin + query_str: str = ' ', + columns: str = "default", + vrf: str = "", + group: str = "", + ) -> None: + super().__init__( + engine=engine, + hostname=hostname, + start_time=start_time, + end_time=end_time, + view=view, + namespace=namespace, + columns=columns, + format=format, + query_str=query_str, + sqobj=IgmpObj, + ) + self.lvars = { + 'vrf': vrf.split(), + 'group': group.split() + } diff --git a/suzieq/cli/sqcmds/MrouteCmd.py b/suzieq/cli/sqcmds/MrouteCmd.py new file mode 100644 index 0000000000..d552c2cc52 --- /dev/null +++ b/suzieq/cli/sqcmds/MrouteCmd.py @@ -0,0 +1,68 @@ +import ipaddress + +from nubia import command +from suzieq.cli.nubia_patch import argument + +from suzieq.cli.sqcmds.command import SqTableCommand +from suzieq.sqobjects.mroutes import MroutesObj + + +@command("mroute", help="Act on Mroutes") +@argument("vrf", description="VRF(s), space separated") +@argument("source", description="Source(s), in quotes, space separated") +@argument("group", description="Group(s), in quotes, space separated") +class MrouteCmd(SqTableCommand): + """Multicast Routing table information""" + + def __init__( + self, + engine: str = "", + hostname: str = "", + start_time: str = "", + end_time: str = "", + view: str = "", + namespace: str = "", + format: str = "", # pylint: disable=redefined-builtin + query_str: str = ' ', + columns: str = "default", + vrf: str = "", + source: str = '', + group: str = '', + ) -> None: + super().__init__( + engine=engine, + hostname=hostname, + start_time=start_time, + end_time=end_time, + view=view, + namespace=namespace, + columns=columns, + format=format, + query_str=query_str, + sqobj=MroutesObj, + ) + self.lvars = { + 'vrf': vrf.split(), + 'source': source.split(), + 'group': group.split() + } + + def _json_print_handler(self, in_data): # pylint: disable=method-hidden + """This handler calls the code to print the IPNetwork as a string""" + if isinstance(in_data, ipaddress.IPv4Network): + return ipaddress.IPv4Network.__str__(in_data) + elif isinstance(in_data, ipaddress.IPv6Network): + return ipaddress.IPv6Network.__str__(in_data) + return in_data + + def _get_ipvers(self, value: str) -> int: + """Return the IP version in use""" + + if ':' in value: + ipvers = 6 + elif '.' in value: + ipvers = 4 + else: + ipvers = '' + + return ipvers diff --git a/suzieq/config/igmp.yml b/suzieq/config/igmp.yml new file mode 100644 index 0000000000..3f9534a03a --- /dev/null +++ b/suzieq/config/igmp.yml @@ -0,0 +1,37 @@ +service: igmp +keys: + - group + - vrf + - interface +ignore-fields: + - lastUpTime +show-fields: + - interface + - flag + - vrf + +apply: + eos: + version: all + command: + - command: show ip igmp groups + normalize: 'groupList/*/[ + "groupAddress: group", + "interfaceName: interface", + "uptime: lastUpTime", + "lastReporter: querier", + "flag: flag?|dynamic", + "vrf: vrf?|default" + ]' + - command: show ip igmp static-groups + normalize: 'intfAddrs/*:interface/[ + "groupAddrsList: group", + "flag: flag?|static", + "vrf: vrf?|default" + ]' + nxos: + version: all + command: show ip igmp groups vrf all + textfsm: textfsm_templates/nxos_show_ip_igmp_groups_vrf_all.tfsm + merge: False + diff --git a/suzieq/config/mroutes.yml b/suzieq/config/mroutes.yml new file mode 100644 index 0000000000..045f66ca1a --- /dev/null +++ b/suzieq/config/mroutes.yml @@ -0,0 +1,35 @@ +service: mroutes +keys: + - source + - group + - vrf +ignore-fields: + - statusChangeTimestamp +show-fields: + - source + - group + - rpfInterface + - oifList + - vrf + - ipvers + - rpfNeighbor + - lastUpTime + + +apply: + eos: + version: all + command: show ip mroute + normalize: '*:protocol/groups/*:group/groupSources/*:source/[ + "creationTime: lastUpTime", + "rpfInterface: rpfInterface", + "rpf/rpfNeighbor: rpfNeighbor", + "oifList: oifList", + "vrf: vrf?|default" + ]' + + nxos: + version: all + command: show ip mroute vrf all + textfsm: textfsm_templates/nxos_show_ip_mroute_vrf_all.tfsm + merge: False diff --git a/suzieq/config/schema/igmp.avsc b/suzieq/config/schema/igmp.avsc new file mode 100644 index 0000000000..a9bb7ce7c3 --- /dev/null +++ b/suzieq/config/schema/igmp.avsc @@ -0,0 +1,63 @@ +{ + "namespace": "suzieq", + "name": "igmp", + "type": "record", + "fields": [ + { + "name": "sqvers", + "type": "string", + "partition": 0, + "default": "2.0", + "suppress": true, + "description": "Schema version, not selectable" + }, + { + "name": "group", + "type": "string", + "key": 3, + "display": 3, + "description": "The multicast group being subscribed to" + }, + { + "name": "interface", + "type": "string", + "display": 4, + "description": "The interface with a subscribed to the group" + }, + { + "name": "flag", + "type": "string", + "display": 5, + "description": "Whether the igmp group is dynamic or statically configured" + }, + { + "name": "hostname", + "type": "string", + "key": 1, + "display": 1, + "description": "Hostname of the device that returned the data" + }, + { + "name": "vrf", + "type": "string", + "key": 4, + "display": 6, + "description": "VRF that the group has joined" + }, + { + "name": "namespace", + "type": "string", + "key": 0, + "display": 0, + "description": "namespace to which the data belongs" + }, + { + "name": "timestamp", + "type": "timestamp" + }, + { + "name": "active", + "type": "boolean" + } + ] +} \ No newline at end of file diff --git a/suzieq/config/schema/mroutes.avsc b/suzieq/config/schema/mroutes.avsc new file mode 100644 index 0000000000..2da0913844 --- /dev/null +++ b/suzieq/config/schema/mroutes.avsc @@ -0,0 +1,87 @@ +{ + "namespace": "suzieq", + "name": "mroutes", + "type": "record", + "fields": [ + { + "name": "sqvers", + "type": "string", + "partition": 0, + "default": "2.0", + "suppress": true, + "description": "Schema version, not selectable" + }, + { + "name": "source", + "type": "string", + "key": 2, + "display": 2, + "description": "Source advertising a given multicast group/route" + }, + { + "name": "group", + "type": "string", + "key": 3, + "display": 3, + "description": "multicast group" + }, + { + "name": "hostname", + "type": "string", + "key": 1, + "display": 1, + "description": "Device the data was gathered from" + }, + { + "name": "rpfInterface", + "type": "string", + "display": 4, + "description": "Reverse path forwarding interface. The interface toward the originator of the multicast traffic" + }, + { + "name": "oifList", + "type": { + "type": "array", + "items": { + "name": "oif", + "type": "string" + } + }, + "display": 5, + "description": "Outgoing interface list. The list of interfaces toward the multicast receivers" + }, + { + "name": "vrf", + "type": "string", + "key": 3, + "display": 6, + "description": "VRF the data is from on the specific device" + }, + { + "name": "ipvers", + "type": "long", + "display": 7 + }, + { + "name": "rpNeighbor", + "type": "string", + "display": 9, + "description": "IP of the RPF neighbor. Should be reachable via the rpfInterface" + }, + { + "name": "namespace", + "type": "string", + "key": 0, + "display": 0 + }, + { + "name": "timestamp", + "type": "timestamp", + "display": 10 + }, + { + "name": "active", + "type": "boolean" + } + ] +} \ No newline at end of file diff --git a/suzieq/config/textfsm_templates/nxos_show_ip_igmp_groups_vrf_all.tfsm b/suzieq/config/textfsm_templates/nxos_show_ip_igmp_groups_vrf_all.tfsm new file mode 100644 index 0000000000..f33083a1f4 --- /dev/null +++ b/suzieq/config/textfsm_templates/nxos_show_ip_igmp_groups_vrf_all.tfsm @@ -0,0 +1,24 @@ +Value Filldown group ((\d{1,3}\.?){4}) +Value Filldown vrf (\S+) +Value Required interface (\S+) +Value Required lastUpTime (\S+) +Value flag (\S) + +Start + ^IGMP\s+Connected\s+Group\s+Membership\s+for\s+VRF\s+"${vrf}".* + ^${group}\s?$$ + ^\s+(\d{1,3}\.?){4}\s+\S\s+${interface}.* -> Record + ^${group}\s+${flag}\s+${interface}\s+${lastUpTime}.* -> Record + ^Type:.* + ^\s+.*Cache\sOnly + ^Group\s+Address + ^. -> Error + +EOF + +# nxos-3# show ip igmp groups vrf all +# IGMP Connected Group Membership for VRF "default" - 1 total entries +# Type: S - Static, D - Dynamic, L - Local, T - SSM Translated, H - Host Proxy +# * - Cache Only +# Group Address Type Interface Uptime Expires Last Reporter +# 225.0.0.1 D Ethernet1/3 00:01:26 00:03:57 10.0.13.10 \ No newline at end of file diff --git a/suzieq/config/textfsm_templates/nxos_show_ip_mroute_vrf_all.tfsm b/suzieq/config/textfsm_templates/nxos_show_ip_mroute_vrf_all.tfsm new file mode 100755 index 0000000000..14eb12779a --- /dev/null +++ b/suzieq/config/textfsm_templates/nxos_show_ip_mroute_vrf_all.tfsm @@ -0,0 +1,29 @@ +Value Required group (\S+) +Value source (\*|\S+) +Value Filldown vrf (\S+) +Value List oifList (\S+) +Value incomingIf (\S+) +Value rpfNeighbor (\S+) +Value lastUpTime (\S+) + +Start + ^\s*$$ + ^IP\s+Multicast\s+Routing\s+Table\s+for\s+VRF\s+"${vrf}" + ^\( -> Continue.Record + ^\(${source},\s+${group}\),\s+uptime:\s+${lastUpTime},.* + ^\s+Incoming\s+interface:\s+${incomingIf},\s+RPF\s+nbr:\s+${rpfNeighbor} + ^\s+Outgoing\s+interface\s+list:\s+\(count:\s+\d+\) + ^\s+${oifList},\s+uptime:\s+${lastUpTime},\s+\w+ + ^. -> Error + +# nxos-2# show ip mroute vrf all +# IP Multicast Routing Table for VRF "default" +# +# (10.0.13.10/32, 225.0.0.1/32), uptime: 00:11:35, pim mrib ip +# Incoming interface: Ethernet1/2, RPF nbr: 10.0.2.2, internal +# Outgoing interface list: (count: 0) +# +# +# (*, 232.0.0.0/8), uptime: 23:48:01, pim ip +# Incoming interface: Null, RPF nbr: 0.0.0.0 +# Outgoing interface list: (count: 0) diff --git a/suzieq/engines/pandas/igmp.py b/suzieq/engines/pandas/igmp.py new file mode 100644 index 0000000000..d40accdfb6 --- /dev/null +++ b/suzieq/engines/pandas/igmp.py @@ -0,0 +1,40 @@ +from suzieq.engines.pandas.engineobj import SqPandasEngine + + +class IgmpObj(SqPandasEngine): + '''Backend class to handle manipulating mroutes table with pandas''' + + @staticmethod + def table_name(): + '''Table name''' + return 'igmp' + + def get(self, **kwargs): + '''Return the igmp table for the given filters''' + + user_query = kwargs.pop('query_str', '') + columns = kwargs.pop('columns', ['default']) + fields = self.schema.get_display_fields(columns) + + df = super().get(columns=fields, **kwargs) + + if user_query: + df = self._handle_user_query_str(df, user_query) + + return df[fields] + + def summarize(self, **kwargs): + self._init_summarize(**kwargs) + if self.summary_df.empty: + return self.summary_df + + self._gen_summarize_data() + + groups_per_vrfns = self.summary_df.groupby(by=["namespace", "vrf"])[ + "group"].count().groupby("namespace") + self._add_stats_to_summary(groups_per_vrfns, 'igmpGroupsPerVrfStat') + + self.summary_row_order.append('igmpGroupsPerVrfStat') + + self._post_summarize() + return self.ns_df.convert_dtypes() diff --git a/suzieq/engines/pandas/mroutes.py b/suzieq/engines/pandas/mroutes.py new file mode 100644 index 0000000000..c3d925090b --- /dev/null +++ b/suzieq/engines/pandas/mroutes.py @@ -0,0 +1,42 @@ +from suzieq.engines.pandas.engineobj import SqPandasEngine + + +class MroutesObj(SqPandasEngine): + '''Backend class to handle manipulating mroutes table with pandas''' + + @staticmethod + def table_name(): + '''Table name''' + return 'mroutes' + + def get(self, **kwargs): + '''Return the mroutes table for the given filters''' + + ipvers = kwargs.pop('ipvers', '') + user_query = kwargs.pop('query_str', '') + columns = kwargs.pop('columns', ['default']) + fields = self.schema.get_display_fields(columns) + + df = super().get(ipvers=ipvers, columns=fields, **kwargs) + + if user_query: + df = self._handle_user_query_str(df, user_query) + + return df[fields] + + def summarize(self, **kwargs): + + self._init_summarize(**kwargs) + if self.summary_df.empty: + return self.summary_df + + self._gen_summarize_data() + + groups_per_vrfns = self.summary_df.groupby(by=["namespace", "vrf"])[[ + "group", "source"]].count().groupby("namespace") + self._add_stats_to_summary(groups_per_vrfns, 'mroutesPerVrfStat') + + self.summary_row_order.append('mroutesPerVrfStat') + + self._post_summarize() + return self.ns_df.convert_dtypes() diff --git a/suzieq/poller/worker/services/igmp.py b/suzieq/poller/worker/services/igmp.py new file mode 100644 index 0000000000..07bfd32534 --- /dev/null +++ b/suzieq/poller/worker/services/igmp.py @@ -0,0 +1,80 @@ +import json + +from suzieq.poller.worker.services.service import Service +from suzieq.shared.utils import ( + get_timestamp_from_cisco_time, + parse_relative_timestamp +) + + +class IgmpService(Service): + """Igmp Service.""" + + def _clean_eos_data(self, _, raw_data): + processed_data = [] + pre_processed_data = {} + # get date for parsing up time + cmd_timestamp = raw_data[0].get("cmd_timestamp") + for data in raw_data: + if "vrf" in data.get("cmd"): + cmd = data["cmd"].split() + vrf = cmd[cmd.index("vrf") + 1] + else: + vrf = "default" + if vrf not in pre_processed_data: + pre_processed_data.update({vrf: {}}) + if isinstance(data["data"], str): + json_data = json.loads(data.get("data")) + else: + json_data = None + if json_data: + # dynamic group "show ip igmp groups" cmd output + if "groupList" in json_data: + for entry in json_data["groupList"]: + processed_data.append( + { + "group": entry["groupAddress"], + "interface": entry["interfaceName"], + "lastUpTime": parse_relative_timestamp( + str(entry["uptime"]), cmd_timestamp / 1000 + ), + "vrf": vrf, + "flag": "dynamic", + } + ) + # static group "show ip igmp static-groups" cmd output + if "intfAddrs" in json_data: + for interface in json_data["intfAddrs"]: + for group in json_data["intfAddrs"][interface][ + "groupAddrsList" + ]: + processed_data.append( + { + "group": group["groupAddr"], + "interface": interface, + "lastUpTime": "n/a", + "vrf": vrf, + "flag": "static", + } + ) + + return processed_data + + def _clean_nxos_data(self, processed_data, raw_data): + """NXOS data returned from the textfsm + template must be munged to a different format""" + timestamp = raw_data[0]["timestamp"] + + for entry in processed_data: + if not entry.get("flag"): + entry.update({"flag": "n/a"}) + else: + if "D" in entry["flag"]: + entry["flag"] = "dynamic" + elif "S" in entry["flag"]: + entry["flag"] = "static" + entry["lastUpTime"] = get_timestamp_from_cisco_time( + entry["lastUpTime"], timestamp / 1000 + ) + + return processed_data diff --git a/suzieq/poller/worker/services/mroutes.py b/suzieq/poller/worker/services/mroutes.py new file mode 100644 index 0000000000..481d2bd7e8 --- /dev/null +++ b/suzieq/poller/worker/services/mroutes.py @@ -0,0 +1,27 @@ +from suzieq.poller.worker.services.service import Service + + +class MroutesService(Service): + """Mroutes service.""" + + def _fix_ipvers(self, entry): + """Fix IP version of entry""" + if ":" in entry["group"]: + entry["ipvers"] = 6 + else: + entry["ipvers"] = 4 + + def _fix_star_source(self, entry): + """Make 0.0.0.0 source a * as convention.""" + if entry["source"] and "0.0.0.0" in entry["source"]: + entry["source"] = "*" + + def _common_data_cleaner(self, processed_data, _): + for entry in processed_data: + self._fix_ipvers(entry) + self._fix_star_source(entry) + + return processed_data + + def _clean_nxos_data(self, processed_data, _): + return processed_data diff --git a/suzieq/restServer/query.py b/suzieq/restServer/query.py index 0ba5dffa95..9a21526df4 100755 --- a/suzieq/restServer/query.py +++ b/suzieq/restServer/query.py @@ -17,32 +17,39 @@ from starlette import status from suzieq.shared.exceptions import UserQueryError -from suzieq.shared.utils import (DATA_FORMATS, get_log_params, load_sq_config, - print_version, sq_get_config_file) +from suzieq.shared.utils import ( + DATA_FORMATS, + get_log_params, + load_sq_config, + print_version, + sq_get_config_file, +) from suzieq.sqobjects import get_sqobject -API_KEY_NAME = 'access_token' +API_KEY_NAME = "access_token" api_key_query = APIKeyQuery(name=API_KEY_NAME, auto_error=False) api_key_header = APIKeyHeader(name=API_KEY_NAME, auto_error=False) def check_config_file(): - if not getattr(app, 'cfg_file', None): - print('missing config file') + if not getattr(app, "cfg_file", None): + print("missing config file") sys.exit(1) # Changing the default URLs to help with reverse proxy stuff as described # in issue #381 (https://github.com/netenglabs/suzieq/issues/381) -app = FastAPI(on_startup=[check_config_file], - openapi_url="/api/openapi.json", - docs_url="/api/docs", - redoc_url="/api/redoc") +app = FastAPI( + on_startup=[check_config_file], + openapi_url="/api/openapi.json", + docs_url="/api/docs", + redoc_url="/api/redoc", +) def app_init(cfg_file): - '''This is the actual API initilaizer''' + """This is the actual API initilaizer""" # pylint: disable=global-variable-not-assigned global app @@ -55,24 +62,24 @@ def app_init(cfg_file): def get_configured_api_key(): cfg = load_sq_config(config_file=app.cfg_file) try: - api_key = cfg['rest']['API_KEY'] + api_key = cfg["rest"]["API_KEY"] except KeyError: - print('missing API_KEY in config file') + print("missing API_KEY in config file") sys.exit(1) return api_key -def get_api_key(api_key_query: str = Security(api_key_query), - api_key_header: str = Security(api_key_header)): - +def get_api_key( + api_key_query: str = Security(api_key_query), + api_key_header: str = Security(api_key_header), +): api_key = get_configured_api_key() if api_key_query == api_key: return api_key_query elif api_key_header == api_key: return api_key_header else: - raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid API Key", @@ -80,9 +87,9 @@ def get_api_key(api_key_query: str = Security(api_key_query), def get_cert_files(cfg): - ssl_certfile = cfg.get('rest', {}).get('rest-certfile') + ssl_certfile = cfg.get("rest", {}).get("rest-certfile") - ssl_keyfile = cfg.get('rest', {}).get('rest-keyfile') + ssl_keyfile = cfg.get("rest", {}).get("rest-keyfile") if not os.path.isfile(ssl_certfile): print(f"ERROR: Missing SSL certificate file: {ssl_certfile}") @@ -92,31 +99,33 @@ def get_cert_files(cfg): print(f"ERROR: Missing SSL key file: {ssl_keyfile}") sys.exit(1) - return ssl_keyfile, ssl_certfile + return ssl_keyfile, ssl_certfile def get_log_config_level(cfg): - logfile, loglevel, logsize, log_stdout = get_log_params( - 'rest', cfg, '/tmp/sq-rest-server.log') + "rest", cfg, "/tmp/sq-rest-server.log" + ) log_config = uvicorn.config.LOGGING_CONFIG if logfile and not log_stdout: - log_config['handlers']['access']['filename'] = logfile - log_config['handlers']['access']['class'] = \ - 'logging.handlers.RotatingFileHandler' - log_config['handlers']['access']['maxBytes'] = logsize - log_config['handlers']['access']['backupCount'] = 2 - - log_config['handlers']['default']['class'] = \ - 'logging.handlers.RotatingFileHandler' - log_config['handlers']['default']['maxBytes'] = logsize - log_config['handlers']['default']['backupCount'] = 2 - log_config['handlers']['default']['filename'] = logfile - - if 'stream' in log_config['handlers']['default']: - del log_config['handlers']['default']['stream'] - del log_config['handlers']['access']['stream'] + log_config["handlers"]["access"]["filename"] = logfile + log_config["handlers"]["access"][ + "class" + ] = "logging.handlers.RotatingFileHandler" + log_config["handlers"]["access"]["maxBytes"] = logsize + log_config["handlers"]["access"]["backupCount"] = 2 + + log_config["handlers"]["default"][ + "class" + ] = "logging.handlers.RotatingFileHandler" + log_config["handlers"]["default"]["maxBytes"] = logsize + log_config["handlers"]["default"]["backupCount"] = 2 + log_config["handlers"]["default"]["filename"] = logfile + + if "stream" in log_config["handlers"]["default"]: + del log_config["handlers"]["default"]["stream"] + del log_config["handlers"]["access"]["stream"] return log_config, loglevel @@ -134,21 +143,20 @@ def rest_main(*args) -> None: parser = argparse.ArgumentParser(args) parser.add_argument( - "-c", - "--config", - type=str, help="alternate config file", - default=None + "-c", "--config", type=str, help="alternate config file", default=None ) parser.add_argument( "--no-https", help="Turn off HTTPS", - default=False, action='store_true', + default=False, + action="store_true", ) parser.add_argument( "--version", "-V", help="print Suzieq version", - default=False, action='store_true', + default=False, + action="store_true", ) userargs = parser.parse_args() @@ -160,26 +168,33 @@ def rest_main(*args) -> None: app = app_init(config_file) cfg = load_sq_config(config_file=config_file) try: - _ = cfg['rest']['API_KEY'] + _ = cfg["rest"]["API_KEY"] except KeyError: - print('missing API_KEY in config file') + print("missing API_KEY in config file") sys.exit(1) logcfg, loglevel = get_log_config_level(cfg) - no_https = cfg.get('rest', {}).get('no-https', False) or userargs.no_https + no_https = cfg.get("rest", {}).get("no-https", False) or userargs.no_https - srvr_addr = cfg.get('rest', {}).get('address', '127.0.0.1') - srvr_port = cfg.get('rest', {}).get('port', 8000) + srvr_addr = cfg.get("rest", {}).get("address", "127.0.0.1") + srvr_port = cfg.get("rest", {}).get("port", 8000) if no_https: - uvicorn.run(app, host=srvr_addr, port=srvr_port, - ) + uvicorn.run( + app, + host=srvr_addr, + port=srvr_port, + ) else: ssl_keyfile, ssl_certfile = get_cert_files(cfg) - uvicorn.run(app, host=srvr_addr, port=srvr_port, - ssl_keyfile=ssl_keyfile, - ssl_certfile=ssl_certfile) + uvicorn.run( + app, + host=srvr_addr, + port=srvr_port, + ssl_keyfile=ssl_keyfile, + ssl_certfile=ssl_certfile, + ) class CommonVerbs(str, Enum): @@ -274,6 +289,7 @@ class TruthasStrings(str, Enum): yes = "True" no = "False" + # The logic in the code below is that you have a common function to # split the common arguments across all the functions, and split the # object-specific arguments in the object function itself. @@ -281,523 +297,688 @@ class TruthasStrings(str, Enum): @app.get("/api/v1/{rest_of_path:path}", deprecated=True) def deprecated_function(request: Request, rest_of_path: str): - return ([{'error': 'v1 is deprecated, use API version v2'}]) + return [{"error": "v1 is deprecated, use API version v2"}] @app.get("/api/v2/address/{verb}") -def query_address(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - address: List[str] = Query(None), - type: List[str] = Query(None), - ifname: List[str] = Query(None), - prefix: List[str] = Query(None), - ipvers: str = None, what: str = None, - vrf: List[str] = Query(None), query_str: str = None, - count: str = None, reverse: str = None, - ): +def query_address( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + address: List[str] = Query(None), + type: List[str] = Query(None), + ifname: List[str] = Query(None), + prefix: List[str] = Query(None), + ipvers: str = None, + what: str = None, + vrf: List[str] = Query(None), + query_str: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/arpnd/{verb}") -def query_arpnd(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - ipAddress: List[str] = Query(None), - macaddr: List[str] = Query(None), - prefix: List[str] = Query(None), - oif: List[str] = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/arpnd/{verb}") +def query_arpnd( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + ipAddress: List[str] = Query(None), + macaddr: List[str] = Query(None), + prefix: List[str] = Query(None), + oif: List[str] = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/bgp/{verb}") -def query_bgp(verb: CommonExtraVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - peer: List[str] = Query(None), - state: BgpStateValues = Query(None), - vrf: List[str] = Query(None), - asn: List[str] = Query(None), - result: AssertResultValue = Query(None), - afiSafi: str = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/bgp/{verb}") +def query_bgp( + verb: CommonExtraVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + peer: List[str] = Query(None), + state: BgpStateValues = Query(None), + vrf: List[str] = Query(None), + asn: List[str] = Query(None), + result: AssertResultValue = Query(None), + afiSafi: str = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/device/{verb}") -def query_device(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - query_str: str = None, - os: List[str] = Query(None), - vendor: List[str] = Query(None), - model: List[str] = Query(None), - version: List[str] = Query(None), - what: str = None, - status: List[DeviceStatus] = Query(None), - ignore_neverpoll: bool = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/device/{verb}") +def query_device( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + query_str: str = None, + os: List[str] = Query(None), + vendor: List[str] = Query(None), + model: List[str] = Query(None), + version: List[str] = Query(None), + what: str = None, + status: List[DeviceStatus] = Query(None), + ignore_neverpoll: bool = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name if status: status = [x.value for x in status] # convert enum to string return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/devconfig/{verb}") -def query_devconfig(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - query_str: str = None, - what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/devconfig/{verb}") +def query_devconfig( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): + function_name = inspect.currentframe().f_code.co_name + return read_shared(function_name, verb, request, locals()) + + +@app.get("/api/v2/evpnVni/{verb}") +def query_evpnVni( + verb: CommonExtraVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + vni: List[str] = Query(None), + priVtepIp: List[str] = Query(None), + result: AssertResultValue = None, + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/evpnVni/{verb}") -def query_evpnVni(verb: CommonExtraVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - vni: List[str] = Query(None), - priVtepIp: List[str] = Query(None), - result: AssertResultValue = None, - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/fs/{verb}") +def query_fs( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + mountPoint: List[str] = Query(None), + what: str = None, + usedPercent: str = None, + query_str: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/fs/{verb}") -def query_fs(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - mountPoint: List[str] = Query(None), what: str = None, - usedPercent: str = None, query_str: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/igmp/{verb}") +def query_igmp( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + source: List[str] = Query(None), + vrf: List[str] = Query(None), + group: str = None, + ipvers: str = None, + add_filter: str = None, + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/interface/{verb}") -def query_interface(verb: CommonExtraVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - ifname: List[str] = Query(None), - state: IfStateValues = Query(None), - type: List[str] = Query(None), - what: str = None, vrf: List[str] = Query(None), - master: List[str] = Query(None), - mtu: List[str] = Query(None), - ifindex: List[str] = Query(None), - value: List[int] = Query(None), - result: AssertResultValue = Query(None), - ignore_missing_peer: bool = Query(False), - vlan: List[str] = Query(None), - portmode: List[str] = Query(None), - query_str: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/interface/{verb}") +def query_interface( + verb: CommonExtraVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + ifname: List[str] = Query(None), + state: IfStateValues = Query(None), + type: List[str] = Query(None), + what: str = None, + vrf: List[str] = Query(None), + master: List[str] = Query(None), + mtu: List[str] = Query(None), + ifindex: List[str] = Query(None), + value: List[int] = Query(None), + result: AssertResultValue = Query(None), + ignore_missing_peer: bool = Query(False), + vlan: List[str] = Query(None), + portmode: List[str] = Query(None), + query_str: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) @app.get("/api/v2/inventory/{verb}") -def query_inventory(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - query_str: str = None, - type: List[str] = Query(None), - serial: List[str] = Query(None), - model: List[str] = Query(None), - vendor: List[str] = Query(None), what: str = None, - status: InventoryStatusValues = Query(None), - count: str = None, reverse: str = None, - ): +def query_inventory( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + query_str: str = None, + type: List[str] = Query(None), + serial: List[str] = Query(None), + model: List[str] = Query(None), + vendor: List[str] = Query(None), + what: str = None, + status: InventoryStatusValues = Query(None), + count: str = None, + reverse: str = None, +): + function_name = inspect.currentframe().f_code.co_name + return read_shared(function_name, verb, request, locals()) + + +@app.get("/api/v2/lldp/{verb}") +def query_lldp( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + peerMacaddr: List[str] = Query(None), + peerHostname: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + ifname: List[str] = Query(None), + use_bond: TruthasStrings = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/lldp/{verb}") -def query_lldp(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - peerMacaddr: List[str] = Query(None), - peerHostname: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - ifname: List[str] = Query(None), - use_bond: TruthasStrings = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/mac/{verb}") +def query_mac( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + bd: str = None, + local: str = None, + macaddr: List[str] = Query(None), + remoteVtepIp: List[str] = Query(None), + vlan: List[str] = Query(None), + query_str: str = None, + what: str = None, + moveCount: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/mac/{verb}") -def query_mac(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - bd: str = None, - local: str = None, - macaddr: List[str] = Query(None), - remoteVtepIp: List[str] = Query(None), - vlan: List[str] = Query(None), - query_str: str = None, what: str = None, - moveCount: str = None, count: str = None, - reverse: str = None, - ): +@app.get("/api/v2/mlag/{verb}") +def query_mlag( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/mlag/{verb}") -def query_mlag(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/mroute/{verb}") +def query_mroutes( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + source: List[str] = Query(None), + vrf: List[str] = Query(None), + group: str = None, + ipvers: str = None, + add_filter: str = None, + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) @app.get("/api/v2/network/show", deprecated=True) -def query_network_depr_show(request: Request, - token: str = Depends(get_api_key), - format: str = None, - columns: List[str] = Query( - default=["default"]), - namespace: List[str] = Query(None), - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - version: str = "", - view: ViewValues = "latest", - model: List[str] = Query(None), - vendor: List[str] = Query(None), - os: List[str] = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): - function_name = 'query_namespace' - verb = 'show' +def query_network_depr_show( + request: Request, + token: str = Depends(get_api_key), + format: str = None, + columns: List[str] = Query(default=["default"]), + namespace: List[str] = Query(None), + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + version: str = "", + view: ViewValues = "latest", + model: List[str] = Query(None), + vendor: List[str] = Query(None), + os: List[str] = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): + function_name = "query_namespace" + verb = "show" return read_shared(function_name, verb, request, locals()) @app.get("/api/v2/network/summarize", deprecated=True) -def query_network_depr_summarize(request: Request, - token: str = Depends(get_api_key), - format: str = None, - columns: List[str] = Query( - default=["default"]), - namespace: List[str] = Query(None), - hostname: List[str] = Query(None), - start_time: str = "", - end_time: str = "", - version: str = "", - view: ViewValues = "latest", - model: List[str] = Query(None), - vendor: List[str] = Query(None), - os: List[str] = Query(None), - query_str: str = None, - what: str = None, - count: str = None, - reverse: str = None, - ): - function_name = 'query_namespace' - verb = 'summarize' +def query_network_depr_summarize( + request: Request, + token: str = Depends(get_api_key), + format: str = None, + columns: List[str] = Query(default=["default"]), + namespace: List[str] = Query(None), + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + version: str = "", + view: ViewValues = "latest", + model: List[str] = Query(None), + vendor: List[str] = Query(None), + os: List[str] = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): + function_name = "query_namespace" + verb = "summarize" return read_shared(function_name, verb, request, locals()) @app.get("/api/v2/network/unique", deprecated=True) -def query_network_depr_unique(request: Request, - token: str = Depends(get_api_key), - format: str = None, - columns: List[str] = Query( - default=["default"]), - namespace: List[str] = Query(None), - hostname: List[str] = Query(None), - start_time: str = "", - end_time: str = "", - version: str = "", - view: ViewValues = "latest", - model: List[str] = Query(None), - vendor: List[str] = Query(None), - os: List[str] = Query(None), - query_str: str = None, - what: str = None, - count: str = None, reverse: str = None, - ): - function_name = 'query_namespace' - verb = 'unique' +def query_network_depr_unique( + request: Request, + token: str = Depends(get_api_key), + format: str = None, + columns: List[str] = Query(default=["default"]), + namespace: List[str] = Query(None), + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + version: str = "", + view: ViewValues = "latest", + model: List[str] = Query(None), + vendor: List[str] = Query(None), + os: List[str] = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): + function_name = "query_namespace" + verb = "unique" return read_shared(function_name, verb, request, locals()) @app.get("/api/v2/network/top", deprecated=True) -def query_network_depr_top(request: Request, - token: str = Depends(get_api_key), - format: str = None, - columns: List[str] = Query( - default=["default"]), - namespace: List[str] = Query(None), - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - version: str = "", - view: ViewValues = "latest", - model: List[str] = Query(None), - vendor: List[str] = Query(None), - os: List[str] = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): - function_name = 'query_namespace' - verb = 'top' +def query_network_depr_top( + request: Request, + token: str = Depends(get_api_key), + format: str = None, + columns: List[str] = Query(default=["default"]), + namespace: List[str] = Query(None), + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + version: str = "", + view: ViewValues = "latest", + model: List[str] = Query(None), + vendor: List[str] = Query(None), + os: List[str] = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): + function_name = "query_namespace" + verb = "top" return read_shared(function_name, verb, request, locals()) @app.get("/api/v2/network/{verb}") -def query_network(verb: NetworkVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - columns: List[str] = Query(default=["default"]), - namespace: List[str] = Query(None), - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - address: List[str] = Query(None), - vlan: str = '', vrf: str = '', - query_str: str = None, - ): +def query_network( + verb: NetworkVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + columns: List[str] = Query(default=["default"]), + namespace: List[str] = Query(None), + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + address: List[str] = Query(None), + vlan: str = "", + vrf: str = "", + query_str: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) @app.get("/api/v2/namespace/{verb}") -def query_namespace(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - columns: List[str] = Query(default=["default"]), - namespace: List[str] = Query(None), - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - version: str = "", - view: ViewValues = "latest", - model: List[str] = Query(None), - vendor: List[str] = Query(None), - os: List[str] = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +def query_namespace( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + columns: List[str] = Query(default=["default"]), + namespace: List[str] = Query(None), + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + version: str = "", + view: ViewValues = "latest", + model: List[str] = Query(None), + vendor: List[str] = Query(None), + os: List[str] = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/ospf/{verb}") -def query_ospf(verb: CommonExtraVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - ifname: List[str] = Query(None), - state: OspfStateValues = Query(None), - area: List[str] = Query(None), - vrf: List[str] = Query(None), - result: AssertResultValue = None, - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/ospf/{verb}") +def query_ospf( + verb: CommonExtraVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + ifname: List[str] = Query(None), + state: OspfStateValues = Query(None), + area: List[str] = Query(None), + vrf: List[str] = Query(None), + result: AssertResultValue = None, + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/path/{verb}") -def query_path(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - vrf: str = Query(None), - dest: str = Query(None), - src: str = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/path/{verb}") +def query_path( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + vrf: str = Query(None), + dest: str = Query(None), + src: str = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/route/{verb}") -def query_route(verb: RouteVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - prefix: List[str] = Query(None), - vrf: List[str] = Query(None), - protocol: List[str] = Query(None), - prefixlen: str = None, ipvers: str = None, - add_filter: str = None, address: str = None, - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/route/{verb}") +def query_route( + verb: RouteVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + prefix: List[str] = Query(None), + vrf: List[str] = Query(None), + protocol: List[str] = Query(None), + prefixlen: str = None, + ipvers: str = None, + add_filter: str = None, + address: str = None, + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/sqPoller/{verb}") -def query_sqPoller(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - service: str = None, - status: SqPollerStatus = Query(None), - query_str: str = None, what: str = None, - pollExcdPeriodCount: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/sqPoller/{verb}") +def query_sqPoller( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + service: str = None, + status: SqPollerStatus = Query(None), + query_str: str = None, + what: str = None, + pollExcdPeriodCount: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/topology/{verb}") -def query_topology(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - polled: str = None, - via: List[str] = Query(None), - ifname: List[str] = Query(None), - peerHostname: List[str] = Query(None), - asn: List[str] = Query(None), - area: List[str] = Query(None), - vrf: List[str] = Query(None), - afiSafi: str = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/topology/{verb}") +def query_topology( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + polled: str = None, + via: List[str] = Query(None), + ifname: List[str] = Query(None), + peerHostname: List[str] = Query(None), + asn: List[str] = Query(None), + area: List[str] = Query(None), + vrf: List[str] = Query(None), + afiSafi: str = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) @app.get("/api/v2/table/{verb}") -def query_table( - verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - query_str: str = None, table: str = None, - what: str = None, - count: str = None, reverse: str = None, +async def query_table( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + query_str: str = None, + table: str = None, + what: str = None, + count: str = None, + reverse: str = None, ): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) -@ app.get("/api/v2/vlan/{verb}") -def query_vlan(verb: CommonVerbs, request: Request, - token: str = Depends(get_api_key), - format: str = None, - hostname: List[str] = Query(None), - start_time: str = "", end_time: str = "", - view: ViewValues = "latest", - namespace: List[str] = Query(None), - columns: List[str] = Query(default=["default"]), - vlan: List[str] = Query(None), - state: str = None, - vlanName: List[str] = Query(None), - query_str: str = None, what: str = None, - count: str = None, reverse: str = None, - ): +@app.get("/api/v2/vlan/{verb}") +def query_vlan( + verb: CommonVerbs, + request: Request, + token: str = Depends(get_api_key), + format: str = None, + hostname: List[str] = Query(None), + start_time: str = "", + end_time: str = "", + view: ViewValues = "latest", + namespace: List[str] = Query(None), + columns: List[str] = Query(default=["default"]), + vlan: List[str] = Query(None), + state: str = None, + vlanName: List[str] = Query(None), + query_str: str = None, + what: str = None, + count: str = None, + reverse: str = None, +): function_name = inspect.currentframe().f_code.co_name return read_shared(function_name, verb, request, locals()) @@ -805,21 +986,23 @@ def query_vlan(verb: CommonVerbs, request: Request, def read_shared(function_name, verb, request, local_variables=None): """all the shared code for each of thse read functions""" - command = function_name.split('_')[1] # assumes fn name is query_ - command_args, verb_args = create_filters(function_name, command, request, - local_variables) + command = function_name.split("_")[1] # assumes fn name is query_ + command_args, verb_args = create_filters( + function_name, command, request, local_variables + ) verb = cleanup_verb(verb) - columns = local_variables.get('columns', None) - format = local_variables.get('format', None) + columns = local_variables.get("columns", None) + format = local_variables.get("format", None) if not format: - format = 'json' + format = "json" if format not in DATA_FORMATS: return_error(405, f"Unsupported output format '{format}'") ret, svc_inst = run_command_verb( - command, verb, command_args, verb_args, columns, format) + command, verb, command_args, verb_args, columns, format + ) return ret @@ -827,10 +1010,17 @@ def read_shared(function_name, verb, request, local_variables=None): def create_filters(function_name, command, request, local_vars): command_args = {} verb_args = {} - remove_args = ['verb', 'token', 'format', 'request', 'access_token'] - all_cmd_args = ['namespace', 'hostname', - 'start_time', 'end_time', 'view', 'columns', 'format'] - both_verb_and_command = ['namespace', 'hostname', 'columns'] + remove_args = ["verb", "token", "format", "request", "access_token"] + all_cmd_args = [ + "namespace", + "hostname", + "start_time", + "end_time", + "view", + "columns", + "format", + ] + both_verb_and_command = ["namespace", "hostname", "columns"] query_ks = request.query_params for arg in query_ks.keys(): @@ -849,21 +1039,29 @@ def create_filters(function_name, command, request, local_vars): def cleanup_verb(verb): - if verb == 'show': - verb = 'get' - if verb == 'assert': - verb = 'aver' + if verb == "show": + verb = "get" + if verb == "assert": + verb = "aver" return verb -def create_command_args(hostname='', start_time='', end_time='', view='latest', - namespace='', columns='default'): - command_args = {'hostname': hostname, - 'start_time': start_time, - 'end_time': end_time, - 'view': view, - 'namespace': namespace, - 'columns': columns} +def create_command_args( + hostname="", + start_time="", + end_time="", + view="latest", + namespace="", + columns="default", +): + command_args = { + "hostname": hostname, + "start_time": start_time, + "end_time": end_time, + "view": view, + "namespace": namespace, + "columns": columns, + } return command_args @@ -877,8 +1075,7 @@ def get_svc(command): return svc -def run_command_verb(command, verb, command_args, verb_args, - columns=None, format=None): +def run_command_verb(command, verb, command_args, verb_args, columns=None, format=None): """ Runs the command and verb with the command_args and verb_args @@ -890,18 +1087,15 @@ def run_command_verb(command, verb, command_args, verb_args, """ if columns is None: - columns = ['default'] + columns = ["default"] svc = get_svc(command) try: - svc_inst = svc(**command_args, - config_file=app.cfg_file, - engine_name="pandas") + svc_inst = svc(**command_args, config_file=app.cfg_file, engine_name="pandas") df = getattr(svc_inst, verb)(**verb_args) except AttributeError as err: - return_error( - 404, (f"{err}")) + return_error(404, (f"{err}")) except NotImplementedError as err: return_error(404, f"{verb} not supported for {command}: {err}") @@ -913,34 +1107,31 @@ def run_command_verb(command, verb, command_args, verb_args, return_error(405, f"bad keyword/filter for {command} {verb}: {err}") except UserQueryError as err: - return_error(500, f'UserQueryError: {err}') + return_error(500, f"UserQueryError: {err}") except Exception as err: - return_error( - 500, - f"{err}") + return_error(500, f"{err}") - if df.columns.to_list() == ['error']: - return_error( - 405, f"bad keyword/filter for {command} {verb}: {df['error'][0]}") + if df.columns.to_list() == ["error"]: + return_error(405, f"bad keyword/filter for {command} {verb}: {df['error'][0]}") res_content = None media_type = None - if format == 'markdown': + if format == "markdown": # have to return a Reponse so that it won't turn the markdown into JSON res_content = df.to_markdown() - media_type = 'text/plain' - elif format == 'csv': + media_type = "text/plain" + elif format == "csv": res_content = df.to_csv() - media_type = 'text/csv' - elif format == 'text': + media_type = "text/csv" + elif format == "text": res_content = df.to_string() - media_type = 'text/plain' - elif format == 'json': - if verb == 'summarize': - json_orient = 'columns' + media_type = "text/plain" + elif format == "json": + if verb == "summarize": + json_orient = "columns" else: - json_orient = 'records' - media_type = 'application/json' + json_orient = "records" + media_type = "application/json" res_content = df.to_json(orient=json_orient) return Response(content=res_content, media_type=media_type), svc_inst @@ -948,20 +1139,22 @@ def run_command_verb(command, verb, command_args, verb_args, def return_error(code: int, msg: str): u = uuid.uuid1() msg = f"{msg} id={u}" - logger = logging.getLogger('uvicorn') + logger = logging.getLogger("uvicorn") logger.info(msg) raise HTTPException(status_code=code, detail=msg) -@ app.get("/api/v2/{command}", include_in_schema=False) +@app.get("/api/v2/{command}", include_in_schema=False) def missing_verb(command): return_error( - 404, f'{command} command missing a verb. for example ' - f'/api/v2/{command}/show') + 404, + f"{command} command missing a verb. for example " f"/api/v2/{command}/show", + ) -@ app.get("/", include_in_schema=False) +@app.get("/", include_in_schema=False) def bad_path(): return_error( 404, - "bad path. Try something like '/api/v2/device/show' or '/api/docs'") + "bad path. Try something like '/api/v2/device/show' or '/api/docs'", + ) diff --git a/suzieq/sqobjects/igmp.py b/suzieq/sqobjects/igmp.py new file mode 100644 index 0000000000..ef50399e0a --- /dev/null +++ b/suzieq/sqobjects/igmp.py @@ -0,0 +1,18 @@ +from suzieq.sqobjects.basicobj import SqObject + + +class IgmpObj(SqObject): + """The object providing access to the igmp table""" + + def __init__(self, **kwargs): + super().__init__(table="igmp", **kwargs) + self._valid_get_args = [ + "namespace", + "hostname", + "columns", + "group", + "interfaceList", + "vrf", + "flag", + "query_str", + ] diff --git a/suzieq/sqobjects/mroutes.py b/suzieq/sqobjects/mroutes.py new file mode 100644 index 0000000000..ce07907237 --- /dev/null +++ b/suzieq/sqobjects/mroutes.py @@ -0,0 +1,21 @@ +from suzieq.sqobjects.basicobj import SqObject + + +class MroutesObj(SqObject): + """The object providing access to the mroutes table.""" + + def __init__(self, **kwargs): + super().__init__(table="mroutes", **kwargs) + self._valid_get_args = [ + "namespace", + "hostname", + "columns", + "source", + "group", + "vrf", + "rpfInterface", + "oifList", + "ipvers", + "rpfneighbor", + "query_str", + ] diff --git a/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-1/cb55e3a1dd0142cba421fe4c52632e49-0.parquet b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-1/cb55e3a1dd0142cba421fe4c52632e49-0.parquet new file mode 100644 index 0000000000..ba90c75ae9 Binary files /dev/null and b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-1/cb55e3a1dd0142cba421fe4c52632e49-0.parquet differ diff --git a/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-2/f40dc46f2fb34ccab798c45c2d54d597-0.parquet b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-2/f40dc46f2fb34ccab798c45c2d54d597-0.parquet new file mode 100644 index 0000000000..fa71396cd9 Binary files /dev/null and b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-2/f40dc46f2fb34ccab798c45c2d54d597-0.parquet differ diff --git a/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-3/f6b7216d36de4c05a4ac2e7ace45118d-0.parquet b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-3/f6b7216d36de4c05a4ac2e7ace45118d-0.parquet new file mode 100644 index 0000000000..aaa893d33b Binary files /dev/null and b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=ceos-3/f6b7216d36de4c05a4ac2e7ace45118d-0.parquet differ diff --git a/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-1/a5120373eca14dcb8e7055d774bb1657-0.parquet b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-1/a5120373eca14dcb8e7055d774bb1657-0.parquet new file mode 100644 index 0000000000..11f3beb651 Binary files /dev/null and b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-1/a5120373eca14dcb8e7055d774bb1657-0.parquet differ diff --git a/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-2/6ea6c55cd0fd44748d5192d6c61b5e65-0.parquet b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-2/6ea6c55cd0fd44748d5192d6c61b5e65-0.parquet new file mode 100644 index 0000000000..11088e53bf Binary files /dev/null and b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-2/6ea6c55cd0fd44748d5192d6c61b5e65-0.parquet differ diff --git a/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-3/fad53098b6e5413bbdde806b0e21f6ca-0.parquet b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-3/fad53098b6e5413bbdde806b0e21f6ca-0.parquet new file mode 100644 index 0000000000..526836acb6 Binary files /dev/null and b/tests/data/parquet/arpnd/sqvers=2.0/namespace=multicast/hostname=nxos-3/fad53098b6e5413bbdde806b0e21f6ca-0.parquet differ diff --git a/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-1/a93dfc3569e443d7871ad44a3369259e-0.parquet b/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-1/a93dfc3569e443d7871ad44a3369259e-0.parquet new file mode 100644 index 0000000000..d67c238a8a Binary files /dev/null and b/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-1/a93dfc3569e443d7871ad44a3369259e-0.parquet differ diff --git a/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-2/c74ac69bc599421cb6a79518101f8b99-0.parquet b/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-2/c74ac69bc599421cb6a79518101f8b99-0.parquet new file mode 100644 index 0000000000..11935b360f Binary files /dev/null and b/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-2/c74ac69bc599421cb6a79518101f8b99-0.parquet differ diff --git a/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-3/2044957739e048aca26edd229c818408-0.parquet b/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-3/2044957739e048aca26edd229c818408-0.parquet new file mode 100644 index 0000000000..25fe595920 Binary files /dev/null and b/tests/data/parquet/devconfig/sqvers=2.0/namespace=multicast/hostname=nxos-3/2044957739e048aca26edd229c818408-0.parquet differ diff --git a/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-1/6621edcba6da4636be68f482454cec38-0.parquet b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-1/6621edcba6da4636be68f482454cec38-0.parquet new file mode 100644 index 0000000000..2f72e434ad Binary files /dev/null and b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-1/6621edcba6da4636be68f482454cec38-0.parquet differ diff --git a/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-2/e1b4ebf4dba44fc09ad7aa819342eb02-0.parquet b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-2/e1b4ebf4dba44fc09ad7aa819342eb02-0.parquet new file mode 100644 index 0000000000..92bfecb6d0 Binary files /dev/null and b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-2/e1b4ebf4dba44fc09ad7aa819342eb02-0.parquet differ diff --git a/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-3/79508f0ea8754f1b922cc01a6f822d5e-0.parquet b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-3/79508f0ea8754f1b922cc01a6f822d5e-0.parquet new file mode 100644 index 0000000000..2932aba614 Binary files /dev/null and b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=ceos-3/79508f0ea8754f1b922cc01a6f822d5e-0.parquet differ diff --git a/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-1/5f7518c0effe4a45ace7350aa53f6811-0.parquet b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-1/5f7518c0effe4a45ace7350aa53f6811-0.parquet new file mode 100644 index 0000000000..b6111789ae Binary files /dev/null and b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-1/5f7518c0effe4a45ace7350aa53f6811-0.parquet differ diff --git a/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-2/a23f6d55f7bb4ad79d4747d79b62816c-0.parquet b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-2/a23f6d55f7bb4ad79d4747d79b62816c-0.parquet new file mode 100644 index 0000000000..f8648c4a74 Binary files /dev/null and b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-2/a23f6d55f7bb4ad79d4747d79b62816c-0.parquet differ diff --git a/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-3/0a1a2d58207f4c6d9f950e6d61be6f85-0.parquet b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-3/0a1a2d58207f4c6d9f950e6d61be6f85-0.parquet new file mode 100644 index 0000000000..75e70c6194 Binary files /dev/null and b/tests/data/parquet/device/sqvers=4.0/namespace=multicast/hostname=nxos-3/0a1a2d58207f4c6d9f950e6d61be6f85-0.parquet differ diff --git a/tests/data/parquet/igmp/sqvers=2.0/0bdb8dc88f5f403eb78d55f72ca915c0-0.parquet b/tests/data/parquet/igmp/sqvers=2.0/0bdb8dc88f5f403eb78d55f72ca915c0-0.parquet new file mode 100644 index 0000000000..2e27a23a4c Binary files /dev/null and b/tests/data/parquet/igmp/sqvers=2.0/0bdb8dc88f5f403eb78d55f72ca915c0-0.parquet differ diff --git a/tests/data/parquet/igmp/sqvers=2.0/7b78eaf9efb747d79bae25eb4cece7f8-0.parquet b/tests/data/parquet/igmp/sqvers=2.0/7b78eaf9efb747d79bae25eb4cece7f8-0.parquet new file mode 100644 index 0000000000..d23a2a3f2d Binary files /dev/null and b/tests/data/parquet/igmp/sqvers=2.0/7b78eaf9efb747d79bae25eb4cece7f8-0.parquet differ diff --git a/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-1/019f3fb5645f492e826e64379f38fd6e-0.parquet b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-1/019f3fb5645f492e826e64379f38fd6e-0.parquet new file mode 100644 index 0000000000..2ca65699fd Binary files /dev/null and b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-1/019f3fb5645f492e826e64379f38fd6e-0.parquet differ diff --git a/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-2/dd1d91807f114d47969090e2e9b13f29-0.parquet b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-2/dd1d91807f114d47969090e2e9b13f29-0.parquet new file mode 100644 index 0000000000..8c14852ffe Binary files /dev/null and b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-2/dd1d91807f114d47969090e2e9b13f29-0.parquet differ diff --git a/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-3/18ffdc78d5c74a35a0e8d9e9b4192ff7-0.parquet b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-3/18ffdc78d5c74a35a0e8d9e9b4192ff7-0.parquet new file mode 100644 index 0000000000..b517240f63 Binary files /dev/null and b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=ceos-3/18ffdc78d5c74a35a0e8d9e9b4192ff7-0.parquet differ diff --git a/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-1/52edaed328fc4f7b90c8b9560de04d6d-0.parquet b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-1/52edaed328fc4f7b90c8b9560de04d6d-0.parquet new file mode 100644 index 0000000000..c27ab06a17 Binary files /dev/null and b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-1/52edaed328fc4f7b90c8b9560de04d6d-0.parquet differ diff --git a/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-2/07b0f14c0f1a4ed08b564621ec158791-0.parquet b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-2/07b0f14c0f1a4ed08b564621ec158791-0.parquet new file mode 100644 index 0000000000..0d9e5ee9a0 Binary files /dev/null and b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-2/07b0f14c0f1a4ed08b564621ec158791-0.parquet differ diff --git a/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-3/76f0066903fb42f8a4eddc737513dbb4-0.parquet b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-3/76f0066903fb42f8a4eddc737513dbb4-0.parquet new file mode 100644 index 0000000000..bf3917e901 Binary files /dev/null and b/tests/data/parquet/interfaces/sqvers=4.0/namespace=multicast/hostname=nxos-3/76f0066903fb42f8a4eddc737513dbb4-0.parquet differ diff --git a/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-1/b0f5b123b3c04fb38921e3186eadea39-0.parquet b/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-1/b0f5b123b3c04fb38921e3186eadea39-0.parquet new file mode 100644 index 0000000000..48c40e00d0 Binary files /dev/null and b/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-1/b0f5b123b3c04fb38921e3186eadea39-0.parquet differ diff --git a/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-2/8deda6167c074670a5b4cf7451069edd-0.parquet b/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-2/8deda6167c074670a5b4cf7451069edd-0.parquet new file mode 100644 index 0000000000..06f34df184 Binary files /dev/null and b/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-2/8deda6167c074670a5b4cf7451069edd-0.parquet differ diff --git a/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-3/ff145610335c405a83776041c547a2c5-0.parquet b/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-3/ff145610335c405a83776041c547a2c5-0.parquet new file mode 100644 index 0000000000..a08a261293 Binary files /dev/null and b/tests/data/parquet/inventory/sqvers=3.0/namespace=multicast/hostname=nxos-3/ff145610335c405a83776041c547a2c5-0.parquet differ diff --git a/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-1/09d2b4dc8bab474ca87c324bdaccf24b-0.parquet b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-1/09d2b4dc8bab474ca87c324bdaccf24b-0.parquet new file mode 100644 index 0000000000..d96077975f Binary files /dev/null and b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-1/09d2b4dc8bab474ca87c324bdaccf24b-0.parquet differ diff --git a/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-2/e9b0d324248b4d7eaa8537b7a360b082-0.parquet b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-2/e9b0d324248b4d7eaa8537b7a360b082-0.parquet new file mode 100644 index 0000000000..be97bdf190 Binary files /dev/null and b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-2/e9b0d324248b4d7eaa8537b7a360b082-0.parquet differ diff --git a/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-3/2172acf61cd34b569b1e8374a8147dad-0.parquet b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-3/2172acf61cd34b569b1e8374a8147dad-0.parquet new file mode 100644 index 0000000000..281e1b0474 Binary files /dev/null and b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=ceos-3/2172acf61cd34b569b1e8374a8147dad-0.parquet differ diff --git a/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-1/3d65d1be31d5411683815bee37f420d5-0.parquet b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-1/3d65d1be31d5411683815bee37f420d5-0.parquet new file mode 100644 index 0000000000..20d274d018 Binary files /dev/null and b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-1/3d65d1be31d5411683815bee37f420d5-0.parquet differ diff --git a/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-2/41dad959d0af4c14a03c7f225b1f294e-0.parquet b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-2/41dad959d0af4c14a03c7f225b1f294e-0.parquet new file mode 100644 index 0000000000..ca26c2ca59 Binary files /dev/null and b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-2/41dad959d0af4c14a03c7f225b1f294e-0.parquet differ diff --git a/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-3/7602b89f8cb34ee8b6f8d10c729d73ed-0.parquet b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-3/7602b89f8cb34ee8b6f8d10c729d73ed-0.parquet new file mode 100644 index 0000000000..f2dfd905cf Binary files /dev/null and b/tests/data/parquet/lldp/sqvers=2.0/namespace=multicast/hostname=nxos-3/7602b89f8cb34ee8b6f8d10c729d73ed-0.parquet differ diff --git a/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-1/e71995d01bff42f8802d1f2a08f42bcf-0.parquet b/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-1/e71995d01bff42f8802d1f2a08f42bcf-0.parquet new file mode 100644 index 0000000000..fbe077a9fc Binary files /dev/null and b/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-1/e71995d01bff42f8802d1f2a08f42bcf-0.parquet differ diff --git a/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-2/788a04b8f58e4dfbb7829684624876c8-0.parquet b/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-2/788a04b8f58e4dfbb7829684624876c8-0.parquet new file mode 100644 index 0000000000..6cb2662a13 Binary files /dev/null and b/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-2/788a04b8f58e4dfbb7829684624876c8-0.parquet differ diff --git a/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-3/2df6be8812624edf8ec7b06a3260aa84-0.parquet b/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-3/2df6be8812624edf8ec7b06a3260aa84-0.parquet new file mode 100644 index 0000000000..f6a97060f4 Binary files /dev/null and b/tests/data/parquet/macs/sqvers=2.0/namespace=multicast/hostname=nxos-3/2df6be8812624edf8ec7b06a3260aa84-0.parquet differ diff --git a/tests/data/parquet/mroutes/sqvers=2.0/10ac5ac961bb4e34abd8cdb3821ccb70-0.parquet b/tests/data/parquet/mroutes/sqvers=2.0/10ac5ac961bb4e34abd8cdb3821ccb70-0.parquet new file mode 100644 index 0000000000..bc159dbf59 Binary files /dev/null and b/tests/data/parquet/mroutes/sqvers=2.0/10ac5ac961bb4e34abd8cdb3821ccb70-0.parquet differ diff --git a/tests/data/parquet/mroutes/sqvers=2.0/a573d06151ae415fb491f046e072de21-0.parquet b/tests/data/parquet/mroutes/sqvers=2.0/a573d06151ae415fb491f046e072de21-0.parquet new file mode 100644 index 0000000000..02a4a185c7 Binary files /dev/null and b/tests/data/parquet/mroutes/sqvers=2.0/a573d06151ae415fb491f046e072de21-0.parquet differ diff --git a/tests/data/parquet/mroutes/sqvers=2.0/a6353e56efe14669bf8de950a8f21d8b-0.parquet b/tests/data/parquet/mroutes/sqvers=2.0/a6353e56efe14669bf8de950a8f21d8b-0.parquet new file mode 100644 index 0000000000..265de6709a Binary files /dev/null and b/tests/data/parquet/mroutes/sqvers=2.0/a6353e56efe14669bf8de950a8f21d8b-0.parquet differ diff --git a/tests/data/parquet/mroutes/sqvers=2.0/c1056654495c4b5aaf09137103fcc9b3-0.parquet b/tests/data/parquet/mroutes/sqvers=2.0/c1056654495c4b5aaf09137103fcc9b3-0.parquet new file mode 100644 index 0000000000..246c646fc6 Binary files /dev/null and b/tests/data/parquet/mroutes/sqvers=2.0/c1056654495c4b5aaf09137103fcc9b3-0.parquet differ diff --git a/tests/data/parquet/mroutes/sqvers=2.0/dabbe4b56f0347d2a38392fe93b27469-0.parquet b/tests/data/parquet/mroutes/sqvers=2.0/dabbe4b56f0347d2a38392fe93b27469-0.parquet new file mode 100644 index 0000000000..4af94e5305 Binary files /dev/null and b/tests/data/parquet/mroutes/sqvers=2.0/dabbe4b56f0347d2a38392fe93b27469-0.parquet differ diff --git a/tests/data/parquet/mroutes/sqvers=2.0/f3c25467ddfc4eab8b38ec0fc38ad930-0.parquet b/tests/data/parquet/mroutes/sqvers=2.0/f3c25467ddfc4eab8b38ec0fc38ad930-0.parquet new file mode 100644 index 0000000000..29bd1bd4cb Binary files /dev/null and b/tests/data/parquet/mroutes/sqvers=2.0/f3c25467ddfc4eab8b38ec0fc38ad930-0.parquet differ diff --git a/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-1/c3c8e8b2d9a8451ca402e9a5cc689f98-0.parquet b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-1/c3c8e8b2d9a8451ca402e9a5cc689f98-0.parquet new file mode 100644 index 0000000000..c6696e570b Binary files /dev/null and b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-1/c3c8e8b2d9a8451ca402e9a5cc689f98-0.parquet differ diff --git a/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-2/818c516bddb34bea816ed284fb3388fa-0.parquet b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-2/818c516bddb34bea816ed284fb3388fa-0.parquet new file mode 100644 index 0000000000..60c54b53c6 Binary files /dev/null and b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-2/818c516bddb34bea816ed284fb3388fa-0.parquet differ diff --git a/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-3/450a23713e4e4b6e9ddb5e30b8dcd021-0.parquet b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-3/450a23713e4e4b6e9ddb5e30b8dcd021-0.parquet new file mode 100644 index 0000000000..8aa7cb716f Binary files /dev/null and b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=ceos-3/450a23713e4e4b6e9ddb5e30b8dcd021-0.parquet differ diff --git a/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-1/41dbea0c704441728de5f00db75a2134-0.parquet b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-1/41dbea0c704441728de5f00db75a2134-0.parquet new file mode 100644 index 0000000000..b18737cfe0 Binary files /dev/null and b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-1/41dbea0c704441728de5f00db75a2134-0.parquet differ diff --git a/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-2/9e19b5e2d9ea44efa8217c305a312ac3-0.parquet b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-2/9e19b5e2d9ea44efa8217c305a312ac3-0.parquet new file mode 100644 index 0000000000..f8be6b0c7d Binary files /dev/null and b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-2/9e19b5e2d9ea44efa8217c305a312ac3-0.parquet differ diff --git a/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-3/18656c22f12a4eb084372522c4994a76-0.parquet b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-3/18656c22f12a4eb084372522c4994a76-0.parquet new file mode 100644 index 0000000000..4d2c8840b3 Binary files /dev/null and b/tests/data/parquet/ospfIf/sqvers=2.0/namespace=multicast/hostname=nxos-3/18656c22f12a4eb084372522c4994a76-0.parquet differ diff --git a/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-1/5631d1c4190d48d59da3d7f7fa31caa3-0.parquet b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-1/5631d1c4190d48d59da3d7f7fa31caa3-0.parquet new file mode 100644 index 0000000000..f7d6b4317e Binary files /dev/null and b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-1/5631d1c4190d48d59da3d7f7fa31caa3-0.parquet differ diff --git a/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-2/350cb0e4debe49e1977fffd7c596d60f-0.parquet b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-2/350cb0e4debe49e1977fffd7c596d60f-0.parquet new file mode 100644 index 0000000000..1ec59cf52a Binary files /dev/null and b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-2/350cb0e4debe49e1977fffd7c596d60f-0.parquet differ diff --git a/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-3/1d7f57fc4f95405085a1ce5af50dad63-0.parquet b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-3/1d7f57fc4f95405085a1ce5af50dad63-0.parquet new file mode 100644 index 0000000000..d752937851 Binary files /dev/null and b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=ceos-3/1d7f57fc4f95405085a1ce5af50dad63-0.parquet differ diff --git a/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-1/26e6687c745647cc982a78cd32993253-0.parquet b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-1/26e6687c745647cc982a78cd32993253-0.parquet new file mode 100644 index 0000000000..13d81e61ce Binary files /dev/null and b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-1/26e6687c745647cc982a78cd32993253-0.parquet differ diff --git a/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-2/61ef4dbffb38443cb86304f9aa12fa1d-0.parquet b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-2/61ef4dbffb38443cb86304f9aa12fa1d-0.parquet new file mode 100644 index 0000000000..62178dc27d Binary files /dev/null and b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-2/61ef4dbffb38443cb86304f9aa12fa1d-0.parquet differ diff --git a/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-3/6776d0ea45f64a17937eaa352f8075fc-0.parquet b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-3/6776d0ea45f64a17937eaa352f8075fc-0.parquet new file mode 100644 index 0000000000..78bed0db74 Binary files /dev/null and b/tests/data/parquet/ospfNbr/sqvers=3.0/namespace=multicast/hostname=nxos-3/6776d0ea45f64a17937eaa352f8075fc-0.parquet differ diff --git a/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-1/7eac76ed3bdd4d6c80b6351d83bdcc06-0.parquet b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-1/7eac76ed3bdd4d6c80b6351d83bdcc06-0.parquet new file mode 100644 index 0000000000..eb67db768d Binary files /dev/null and b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-1/7eac76ed3bdd4d6c80b6351d83bdcc06-0.parquet differ diff --git a/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-2/27b7f100e79e4d6b9996eaedaa5bebc1-0.parquet b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-2/27b7f100e79e4d6b9996eaedaa5bebc1-0.parquet new file mode 100644 index 0000000000..44266fb143 Binary files /dev/null and b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-2/27b7f100e79e4d6b9996eaedaa5bebc1-0.parquet differ diff --git a/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-3/930fa6535b924b51b33bc94ff1025df6-0.parquet b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-3/930fa6535b924b51b33bc94ff1025df6-0.parquet new file mode 100644 index 0000000000..60b0b7e8b2 Binary files /dev/null and b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=ceos-3/930fa6535b924b51b33bc94ff1025df6-0.parquet differ diff --git a/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-1/17004ef25f59453a83bdb7657464ed0c-0.parquet b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-1/17004ef25f59453a83bdb7657464ed0c-0.parquet new file mode 100644 index 0000000000..cf5380747c Binary files /dev/null and b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-1/17004ef25f59453a83bdb7657464ed0c-0.parquet differ diff --git a/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-2/c0dae975c329417599f8591d7aa3b746-0.parquet b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-2/c0dae975c329417599f8591d7aa3b746-0.parquet new file mode 100644 index 0000000000..c032960db1 Binary files /dev/null and b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-2/c0dae975c329417599f8591d7aa3b746-0.parquet differ diff --git a/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-3/baaa4e6acc69450190d1c02796a2e6e9-0.parquet b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-3/baaa4e6acc69450190d1c02796a2e6e9-0.parquet new file mode 100644 index 0000000000..81545a1609 Binary files /dev/null and b/tests/data/parquet/routes/sqvers=3.0/namespace=multicast/hostname=nxos-3/baaa4e6acc69450190d1c02796a2e6e9-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/24d6bdbaec1341dfacfeb3a5674e4379-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/24d6bdbaec1341dfacfeb3a5674e4379-0.parquet new file mode 100644 index 0000000000..266c41ed17 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/24d6bdbaec1341dfacfeb3a5674e4379-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/2c69d4416698442a9c1eef3624301c2c-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/2c69d4416698442a9c1eef3624301c2c-0.parquet new file mode 100644 index 0000000000..af2211b95c Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/2c69d4416698442a9c1eef3624301c2c-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/30dee05b637d49f4a0f8b7ff9f9f1c9f-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/30dee05b637d49f4a0f8b7ff9f9f1c9f-0.parquet new file mode 100644 index 0000000000..85270cfda8 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/30dee05b637d49f4a0f8b7ff9f9f1c9f-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/56a9db90e3bc45468d6ce075369524a6-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/56a9db90e3bc45468d6ce075369524a6-0.parquet new file mode 100644 index 0000000000..630ab5f75a Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/56a9db90e3bc45468d6ce075369524a6-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/7756188f15e44cd98f3bbc4637409601-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/7756188f15e44cd98f3bbc4637409601-0.parquet new file mode 100644 index 0000000000..d9ebb44f83 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/7756188f15e44cd98f3bbc4637409601-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/aa4776f8e0ea4ff8abb1d3d3220d5772-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/aa4776f8e0ea4ff8abb1d3d3220d5772-0.parquet new file mode 100644 index 0000000000..949cc30e42 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/aa4776f8e0ea4ff8abb1d3d3220d5772-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/b831bb5f941340a69a7dedcbbfa0767f-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/b831bb5f941340a69a7dedcbbfa0767f-0.parquet new file mode 100644 index 0000000000..c58ec9bdd6 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/b831bb5f941340a69a7dedcbbfa0767f-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/bafda0a73a7c4d068e6578b499e64071-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/bafda0a73a7c4d068e6578b499e64071-0.parquet new file mode 100644 index 0000000000..26afa7db8b Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/bafda0a73a7c4d068e6578b499e64071-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/cf311ae6709f41fb8a19270732bbd86a-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/cf311ae6709f41fb8a19270732bbd86a-0.parquet new file mode 100644 index 0000000000..012a4bc17e Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/cf311ae6709f41fb8a19270732bbd86a-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/de2abe7358a64a2cb9e6971131a5d3ec-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/de2abe7358a64a2cb9e6971131a5d3ec-0.parquet new file mode 100644 index 0000000000..1615108101 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/de2abe7358a64a2cb9e6971131a5d3ec-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/f127df5b96ef4402b9c515ddc74e423f-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/f127df5b96ef4402b9c515ddc74e423f-0.parquet new file mode 100644 index 0000000000..88f0c19031 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/f127df5b96ef4402b9c515ddc74e423f-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/fa86e88d503d4580adf4f53941c1e280-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/fa86e88d503d4580adf4f53941c1e280-0.parquet new file mode 100644 index 0000000000..31404ee01c Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/fa86e88d503d4580adf4f53941c1e280-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/029d02c4076f404d9aab144f70aadc5e-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/029d02c4076f404d9aab144f70aadc5e-0.parquet new file mode 100644 index 0000000000..f4856530a5 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/029d02c4076f404d9aab144f70aadc5e-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/07a77cef292d4c3ca08a709858219d68-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/07a77cef292d4c3ca08a709858219d68-0.parquet new file mode 100644 index 0000000000..58fb5db31d Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/07a77cef292d4c3ca08a709858219d68-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/387f74a3f3d1496385a174be8e9fd629-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/387f74a3f3d1496385a174be8e9fd629-0.parquet new file mode 100644 index 0000000000..60300010b4 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/387f74a3f3d1496385a174be8e9fd629-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6266544b5dea4f2586292841cb909590-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6266544b5dea4f2586292841cb909590-0.parquet new file mode 100644 index 0000000000..add646af4f Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6266544b5dea4f2586292841cb909590-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6476ee328e654601abd0c15e1d1edbaf-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6476ee328e654601abd0c15e1d1edbaf-0.parquet new file mode 100644 index 0000000000..d98da9a059 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6476ee328e654601abd0c15e1d1edbaf-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6751f1522f2542c6979c750d3fa20c37-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6751f1522f2542c6979c750d3fa20c37-0.parquet new file mode 100644 index 0000000000..1f2d39c842 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/6751f1522f2542c6979c750d3fa20c37-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/8f3f838d90814a1d92a7b7558d0134f9-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/8f3f838d90814a1d92a7b7558d0134f9-0.parquet new file mode 100644 index 0000000000..21a6176f25 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/8f3f838d90814a1d92a7b7558d0134f9-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/aaf2258065a2468284b500ca3c607cb7-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/aaf2258065a2468284b500ca3c607cb7-0.parquet new file mode 100644 index 0000000000..5b265039a9 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/aaf2258065a2468284b500ca3c607cb7-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/accb9928b21d47e4be09fe628f56660f-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/accb9928b21d47e4be09fe628f56660f-0.parquet new file mode 100644 index 0000000000..48039ea604 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/accb9928b21d47e4be09fe628f56660f-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/b80a847e2cc14149a82a25bb65eabaa1-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/b80a847e2cc14149a82a25bb65eabaa1-0.parquet new file mode 100644 index 0000000000..2826da1840 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/b80a847e2cc14149a82a25bb65eabaa1-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/c042d8dcdf65415f93269be2f668e3d2-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/c042d8dcdf65415f93269be2f668e3d2-0.parquet new file mode 100644 index 0000000000..944e2e55ae Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/c042d8dcdf65415f93269be2f668e3d2-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/d2b4986c0c9e4bf3a529974252af2dd4-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/d2b4986c0c9e4bf3a529974252af2dd4-0.parquet new file mode 100644 index 0000000000..8c7100e230 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/d2b4986c0c9e4bf3a529974252af2dd4-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/ef70639987174a30ab8d54dd5213dcf9-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/ef70639987174a30ab8d54dd5213dcf9-0.parquet new file mode 100644 index 0000000000..81a89e7de3 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-1/ef70639987174a30ab8d54dd5213dcf9-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/0045d2f2042a4704a707267dfff81c3a-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/0045d2f2042a4704a707267dfff81c3a-0.parquet new file mode 100644 index 0000000000..2a90b44cc0 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/0045d2f2042a4704a707267dfff81c3a-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/11237211f4df489fb8308559888a829a-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/11237211f4df489fb8308559888a829a-0.parquet new file mode 100644 index 0000000000..2d6d612fc6 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/11237211f4df489fb8308559888a829a-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/1cbe4e358b6a47fa896ba7ea5829c0df-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/1cbe4e358b6a47fa896ba7ea5829c0df-0.parquet new file mode 100644 index 0000000000..e9be5e21b0 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/1cbe4e358b6a47fa896ba7ea5829c0df-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/46bd3d45ab1549ffa06708c1dd05be77-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/46bd3d45ab1549ffa06708c1dd05be77-0.parquet new file mode 100644 index 0000000000..103cc0fc8c Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/46bd3d45ab1549ffa06708c1dd05be77-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/5a9d6f1f36244121a767046742a31619-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/5a9d6f1f36244121a767046742a31619-0.parquet new file mode 100644 index 0000000000..5ae1412c8e Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/5a9d6f1f36244121a767046742a31619-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/62f5fccc12f04614a3ee2f6e0287ca00-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/62f5fccc12f04614a3ee2f6e0287ca00-0.parquet new file mode 100644 index 0000000000..380df96bad Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/62f5fccc12f04614a3ee2f6e0287ca00-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/69ef2cd8182745e58aae1af6445cb186-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/69ef2cd8182745e58aae1af6445cb186-0.parquet new file mode 100644 index 0000000000..d23f62f95a Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/69ef2cd8182745e58aae1af6445cb186-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/7111201558ba4f47b525c25a949d9605-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/7111201558ba4f47b525c25a949d9605-0.parquet new file mode 100644 index 0000000000..6a8bad9cc8 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/7111201558ba4f47b525c25a949d9605-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/8bf08fbe5a5e4a79ba0faaee6ad6f516-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/8bf08fbe5a5e4a79ba0faaee6ad6f516-0.parquet new file mode 100644 index 0000000000..c98ead3a03 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/8bf08fbe5a5e4a79ba0faaee6ad6f516-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/cf9de1e90e7f40b0b376c86fe5ade5f2-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/cf9de1e90e7f40b0b376c86fe5ade5f2-0.parquet new file mode 100644 index 0000000000..092b174f88 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/cf9de1e90e7f40b0b376c86fe5ade5f2-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/d0dfc5eaf1624d0cabe9d5e83c9c7a7f-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/d0dfc5eaf1624d0cabe9d5e83c9c7a7f-0.parquet new file mode 100644 index 0000000000..cb116d2c71 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/d0dfc5eaf1624d0cabe9d5e83c9c7a7f-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/d8ea86b3052c4ad393def0387660316e-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/d8ea86b3052c4ad393def0387660316e-0.parquet new file mode 100644 index 0000000000..b5a298b772 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/d8ea86b3052c4ad393def0387660316e-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/f1c1ae110d9e4506836872c36d1fbc40-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/f1c1ae110d9e4506836872c36d1fbc40-0.parquet new file mode 100644 index 0000000000..23ea5581b6 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-2/f1c1ae110d9e4506836872c36d1fbc40-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/267e69163c394297801a134c07cc610b-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/267e69163c394297801a134c07cc610b-0.parquet new file mode 100644 index 0000000000..cfc5028a07 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/267e69163c394297801a134c07cc610b-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/2ad815d6e4914cebb67844103b4a39fa-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/2ad815d6e4914cebb67844103b4a39fa-0.parquet new file mode 100644 index 0000000000..51e538b793 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/2ad815d6e4914cebb67844103b4a39fa-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/311be96cfdbe4c1f8f459556e57bf517-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/311be96cfdbe4c1f8f459556e57bf517-0.parquet new file mode 100644 index 0000000000..92b8ab6886 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/311be96cfdbe4c1f8f459556e57bf517-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/5af4992e02b84d3694e0caa4cfcf8bc3-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/5af4992e02b84d3694e0caa4cfcf8bc3-0.parquet new file mode 100644 index 0000000000..59b7037789 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/5af4992e02b84d3694e0caa4cfcf8bc3-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/75a7ae05abd642bf859c485b0bbd57e7-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/75a7ae05abd642bf859c485b0bbd57e7-0.parquet new file mode 100644 index 0000000000..4a0fcd4be8 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/75a7ae05abd642bf859c485b0bbd57e7-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/80d65344debc44c79bae1a730964249e-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/80d65344debc44c79bae1a730964249e-0.parquet new file mode 100644 index 0000000000..b4853e71a4 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/80d65344debc44c79bae1a730964249e-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/8aa334055a2f438b81ae2606753971be-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/8aa334055a2f438b81ae2606753971be-0.parquet new file mode 100644 index 0000000000..6f2bb40249 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/8aa334055a2f438b81ae2606753971be-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/b41687ef738a465680274504b615ad44-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/b41687ef738a465680274504b615ad44-0.parquet new file mode 100644 index 0000000000..c43bb33cd1 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/b41687ef738a465680274504b615ad44-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/b93b047d496a4760b782b2ab710be7b0-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/b93b047d496a4760b782b2ab710be7b0-0.parquet new file mode 100644 index 0000000000..76e2945c69 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/b93b047d496a4760b782b2ab710be7b0-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/bd3d38f0cb484699accee6fa06ea5816-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/bd3d38f0cb484699accee6fa06ea5816-0.parquet new file mode 100644 index 0000000000..ce06efad68 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/bd3d38f0cb484699accee6fa06ea5816-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/c0ec39e8205b4fd8876733e52e85e313-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/c0ec39e8205b4fd8876733e52e85e313-0.parquet new file mode 100644 index 0000000000..8c785d50e2 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/c0ec39e8205b4fd8876733e52e85e313-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/c2b05af578cc43dc9026938b71db8730-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/c2b05af578cc43dc9026938b71db8730-0.parquet new file mode 100644 index 0000000000..2a3f2cf9bc Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/c2b05af578cc43dc9026938b71db8730-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/ec8d64e8957b469f84bb1c27cbd19e54-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/ec8d64e8957b469f84bb1c27cbd19e54-0.parquet new file mode 100644 index 0000000000..722ac86b60 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=ceos-3/ec8d64e8957b469f84bb1c27cbd19e54-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/33315329e06f41a3a8216ef00e649087-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/33315329e06f41a3a8216ef00e649087-0.parquet new file mode 100644 index 0000000000..6d75bd36e3 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/33315329e06f41a3a8216ef00e649087-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/35d6cef25eee4f55ad4c3e9ffcec5ffb-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/35d6cef25eee4f55ad4c3e9ffcec5ffb-0.parquet new file mode 100644 index 0000000000..8b8cc39d64 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/35d6cef25eee4f55ad4c3e9ffcec5ffb-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/365cc2650ef9479786370714d4e85897-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/365cc2650ef9479786370714d4e85897-0.parquet new file mode 100644 index 0000000000..96ee4ea52d Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/365cc2650ef9479786370714d4e85897-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/6121a029910b4487a485be60a7bcdb24-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/6121a029910b4487a485be60a7bcdb24-0.parquet new file mode 100644 index 0000000000..3fbe095d79 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/6121a029910b4487a485be60a7bcdb24-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/6269178261a64ebd8240194ce30c205f-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/6269178261a64ebd8240194ce30c205f-0.parquet new file mode 100644 index 0000000000..ab64b38483 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/6269178261a64ebd8240194ce30c205f-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/661ec6b9b5ff4438a949551e9f883b78-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/661ec6b9b5ff4438a949551e9f883b78-0.parquet new file mode 100644 index 0000000000..b8239b70de Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/661ec6b9b5ff4438a949551e9f883b78-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/b33e39e731a545d08ce3148c16bdd70c-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/b33e39e731a545d08ce3148c16bdd70c-0.parquet new file mode 100644 index 0000000000..f69d4cc3c9 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/b33e39e731a545d08ce3148c16bdd70c-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/bf82801ee6e34f8185f98e874d23b327-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/bf82801ee6e34f8185f98e874d23b327-0.parquet new file mode 100644 index 0000000000..5a1ee6bd8e Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/bf82801ee6e34f8185f98e874d23b327-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/c39722e0e4914114a0ac9190ada75d44-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/c39722e0e4914114a0ac9190ada75d44-0.parquet new file mode 100644 index 0000000000..6fc2a66600 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/c39722e0e4914114a0ac9190ada75d44-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/e141cce9a3b8448fb7b62bc7482903af-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/e141cce9a3b8448fb7b62bc7482903af-0.parquet new file mode 100644 index 0000000000..af49e9b806 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/e141cce9a3b8448fb7b62bc7482903af-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/e566016ee6444641a1783f85b17bb25d-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/e566016ee6444641a1783f85b17bb25d-0.parquet new file mode 100644 index 0000000000..9f69d7a218 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/e566016ee6444641a1783f85b17bb25d-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/fe6288aa268b4d42b6134c826620f39c-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/fe6288aa268b4d42b6134c826620f39c-0.parquet new file mode 100644 index 0000000000..456d617204 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-1/fe6288aa268b4d42b6134c826620f39c-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/09a69a3c7256466f92cb3b001e1fd849-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/09a69a3c7256466f92cb3b001e1fd849-0.parquet new file mode 100644 index 0000000000..372eadd668 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/09a69a3c7256466f92cb3b001e1fd849-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/1bee06bded044213941426a9a008e8f0-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/1bee06bded044213941426a9a008e8f0-0.parquet new file mode 100644 index 0000000000..83021e0df2 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/1bee06bded044213941426a9a008e8f0-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/22c43fb978b9405bb915f184f1340cfe-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/22c43fb978b9405bb915f184f1340cfe-0.parquet new file mode 100644 index 0000000000..92d99e022f Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/22c43fb978b9405bb915f184f1340cfe-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/2cfd2626cf024fbf8144d3e05f3ea357-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/2cfd2626cf024fbf8144d3e05f3ea357-0.parquet new file mode 100644 index 0000000000..52ccd30ab4 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/2cfd2626cf024fbf8144d3e05f3ea357-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/386ca3c824a341f180d70ded094f34cb-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/386ca3c824a341f180d70ded094f34cb-0.parquet new file mode 100644 index 0000000000..0636b8f20e Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/386ca3c824a341f180d70ded094f34cb-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/4f545760423646189f04ca5a44804fda-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/4f545760423646189f04ca5a44804fda-0.parquet new file mode 100644 index 0000000000..6f9fa5a84f Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/4f545760423646189f04ca5a44804fda-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/81c708195b5845cab30104b0174e2415-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/81c708195b5845cab30104b0174e2415-0.parquet new file mode 100644 index 0000000000..b70f0f026c Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/81c708195b5845cab30104b0174e2415-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/8fcfb7fc1b4c4c4f946647823e89e965-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/8fcfb7fc1b4c4c4f946647823e89e965-0.parquet new file mode 100644 index 0000000000..b1c821d943 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/8fcfb7fc1b4c4c4f946647823e89e965-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/951152866b904dbda1c90c0e6686fced-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/951152866b904dbda1c90c0e6686fced-0.parquet new file mode 100644 index 0000000000..c4d46d3d4e Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/951152866b904dbda1c90c0e6686fced-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/a33238baaba948cc80b73ba639d72026-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/a33238baaba948cc80b73ba639d72026-0.parquet new file mode 100644 index 0000000000..1a2fd8c6ac Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/a33238baaba948cc80b73ba639d72026-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/af20f898584b4d4b87686fd70a409bad-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/af20f898584b4d4b87686fd70a409bad-0.parquet new file mode 100644 index 0000000000..7de371cd3b Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/af20f898584b4d4b87686fd70a409bad-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/c8c3e2450d7149f1ae6c89355d78694c-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/c8c3e2450d7149f1ae6c89355d78694c-0.parquet new file mode 100644 index 0000000000..39a77f1537 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-2/c8c3e2450d7149f1ae6c89355d78694c-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/05546621b2ba44f5be2318ed768d0d64-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/05546621b2ba44f5be2318ed768d0d64-0.parquet new file mode 100644 index 0000000000..25bd6ef0ee Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/05546621b2ba44f5be2318ed768d0d64-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/0c1442163d1d4ba483eada6c817afbc0-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/0c1442163d1d4ba483eada6c817afbc0-0.parquet new file mode 100644 index 0000000000..d6be355f75 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/0c1442163d1d4ba483eada6c817afbc0-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/4f3bc5bb7fb2439da7f238af46fa29b3-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/4f3bc5bb7fb2439da7f238af46fa29b3-0.parquet new file mode 100644 index 0000000000..787b54fc9e Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/4f3bc5bb7fb2439da7f238af46fa29b3-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/62a401c01d93469c90b0ec3540b95091-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/62a401c01d93469c90b0ec3540b95091-0.parquet new file mode 100644 index 0000000000..d1340ca9f4 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/62a401c01d93469c90b0ec3540b95091-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/666fe2e764b347e28ae56ac022073a38-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/666fe2e764b347e28ae56ac022073a38-0.parquet new file mode 100644 index 0000000000..3016d5f2e2 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/666fe2e764b347e28ae56ac022073a38-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/696b0ef739c14f57adac9736eb2f213b-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/696b0ef739c14f57adac9736eb2f213b-0.parquet new file mode 100644 index 0000000000..8d979c46e5 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/696b0ef739c14f57adac9736eb2f213b-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/6b90418761c94f88b120c9a54fa6a342-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/6b90418761c94f88b120c9a54fa6a342-0.parquet new file mode 100644 index 0000000000..ccfc9dd39e Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/6b90418761c94f88b120c9a54fa6a342-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/d014d6d14fd94ecd8361fb2c02afb436-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/d014d6d14fd94ecd8361fb2c02afb436-0.parquet new file mode 100644 index 0000000000..c4439647fb Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/d014d6d14fd94ecd8361fb2c02afb436-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/d6d2ff6d68774dd5a50edf6bd0ffbd8e-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/d6d2ff6d68774dd5a50edf6bd0ffbd8e-0.parquet new file mode 100644 index 0000000000..6149e5ae61 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/d6d2ff6d68774dd5a50edf6bd0ffbd8e-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/f5a9749e545840cd8814879ec8f60f11-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/f5a9749e545840cd8814879ec8f60f11-0.parquet new file mode 100644 index 0000000000..330d0e9dba Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/f5a9749e545840cd8814879ec8f60f11-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/f709117522bb44f7881d1673d323a8a8-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/f709117522bb44f7881d1673d323a8a8-0.parquet new file mode 100644 index 0000000000..7087ef6d47 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/f709117522bb44f7881d1673d323a8a8-0.parquet differ diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/fc651d8afaa14d9abfbf869e47d4b374-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/fc651d8afaa14d9abfbf869e47d4b374-0.parquet new file mode 100644 index 0000000000..4e96c36786 Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=multicast/hostname=nxos-3/fc651d8afaa14d9abfbf869e47d4b374-0.parquet differ diff --git a/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-1/16bf32c952e049aaacf31405703dae4a-0.parquet b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-1/16bf32c952e049aaacf31405703dae4a-0.parquet new file mode 100644 index 0000000000..c936d0e9bb Binary files /dev/null and b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-1/16bf32c952e049aaacf31405703dae4a-0.parquet differ diff --git a/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-2/fc9181f35ae54667af20c68ee5151ae9-0.parquet b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-2/fc9181f35ae54667af20c68ee5151ae9-0.parquet new file mode 100644 index 0000000000..15737d1269 Binary files /dev/null and b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-2/fc9181f35ae54667af20c68ee5151ae9-0.parquet differ diff --git a/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-3/14cfe4f92dc748d2af5dbafa12d823b7-0.parquet b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-3/14cfe4f92dc748d2af5dbafa12d823b7-0.parquet new file mode 100644 index 0000000000..241b84488e Binary files /dev/null and b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=ceos-3/14cfe4f92dc748d2af5dbafa12d823b7-0.parquet differ diff --git a/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-1/81e905231e144811bafe371e33ed78f7-0.parquet b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-1/81e905231e144811bafe371e33ed78f7-0.parquet new file mode 100644 index 0000000000..037d3ddfe5 Binary files /dev/null and b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-1/81e905231e144811bafe371e33ed78f7-0.parquet differ diff --git a/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-2/85533d6628a8485ea272c61a472bbc7d-0.parquet b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-2/85533d6628a8485ea272c61a472bbc7d-0.parquet new file mode 100644 index 0000000000..87652536e6 Binary files /dev/null and b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-2/85533d6628a8485ea272c61a472bbc7d-0.parquet differ diff --git a/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-3/6ba4ec33a09d43a08ddd102b71d30c8a-0.parquet b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-3/6ba4ec33a09d43a08ddd102b71d30c8a-0.parquet new file mode 100644 index 0000000000..77e2a12d59 Binary files /dev/null and b/tests/data/parquet/time/sqvers=3.0/namespace=multicast/hostname=nxos-3/6ba4ec33a09d43a08ddd102b71d30c8a-0.parquet differ diff --git a/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-1/3a84ff5e82b04bb8b7a5f4fd09f80c65-0.parquet b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-1/3a84ff5e82b04bb8b7a5f4fd09f80c65-0.parquet new file mode 100644 index 0000000000..5ac490daff Binary files /dev/null and b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-1/3a84ff5e82b04bb8b7a5f4fd09f80c65-0.parquet differ diff --git a/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-2/cebc25c2b7654d528a1d5c89a3c37478-0.parquet b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-2/cebc25c2b7654d528a1d5c89a3c37478-0.parquet new file mode 100644 index 0000000000..c856664303 Binary files /dev/null and b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-2/cebc25c2b7654d528a1d5c89a3c37478-0.parquet differ diff --git a/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-3/34b390a084bd4d5da8db76677df5653f-0.parquet b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-3/34b390a084bd4d5da8db76677df5653f-0.parquet new file mode 100644 index 0000000000..020d045d20 Binary files /dev/null and b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=ceos-3/34b390a084bd4d5da8db76677df5653f-0.parquet differ diff --git a/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-1/dac9c08d282642bc94124c5fbf3bd75d-0.parquet b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-1/dac9c08d282642bc94124c5fbf3bd75d-0.parquet new file mode 100644 index 0000000000..d3a2a2be7d Binary files /dev/null and b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-1/dac9c08d282642bc94124c5fbf3bd75d-0.parquet differ diff --git a/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-2/a10b0e64e7ea457291fffc023bf6a455-0.parquet b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-2/a10b0e64e7ea457291fffc023bf6a455-0.parquet new file mode 100644 index 0000000000..5147b1e393 Binary files /dev/null and b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-2/a10b0e64e7ea457291fffc023bf6a455-0.parquet differ diff --git a/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-3/048ff9ed4ec4461c9870bafc1d6990ca-0.parquet b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-3/048ff9ed4ec4461c9870bafc1d6990ca-0.parquet new file mode 100644 index 0000000000..90bfc757a1 Binary files /dev/null and b/tests/data/parquet/vlan/sqvers=3.0/namespace=multicast/hostname=nxos-3/048ff9ed4ec4461c9870bafc1d6990ca-0.parquet differ diff --git a/tests/integration/sqcmds/multicast-input/arpnd.output b/tests/integration/sqcmds/multicast-input/arpnd.output new file mode 100644 index 0000000000..319cb5b1bb --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/arpnd.output @@ -0,0 +1,115 @@ +[ + { + "status": 0, + "timestamp": 1702060465089, + "cmd_timestamp": 1702060464581, + "cmd": "show arp vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"ipV4Neighbors\": [\n {\n \"address\": \"10.2.2.1\",\n \"age\": 11117,\n \"hwAddress\": \"aac1.ab07.cc86\",\n \"interface\": \"Ethernet1\"\n },\n {\n \"address\": \"10.2.13.10\",\n \"age\": 9973,\n \"hwAddress\": \"aac1.aba3.9c25\",\n \"interface\": \"Ethernet3\"\n },\n {\n \"address\": \"172.20.20.1\",\n \"age\": 0,\n \"hwAddress\": \"0242.ee0d.c654\",\n \"interface\": \"Management0\"\n },\n {\n \"address\": \"172.20.20.9\",\n \"age\": 103,\n \"hwAddress\": \"0242.ac14.1409\",\n \"interface\": \"Management0\"\n }\n ],\n \"totalEntries\": 4,\n \"staticEntries\": 0,\n \"dynamicEntries\": 4,\n \"notLearnedEntries\": 0\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060465586, + "cmd_timestamp": 1702060464950, + "cmd": "show arp vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"ipV4Neighbors\": [\n {\n \"address\": \"10.2.1.1\",\n \"age\": 9227,\n \"hwAddress\": \"aac1.abc2.0142\",\n \"interface\": \"Ethernet1\"\n },\n {\n \"address\": \"10.2.11.10\",\n \"age\": 12866,\n \"hwAddress\": \"aac1.ab25.6c39\",\n \"interface\": \"Ethernet3\"\n },\n {\n \"address\": \"172.20.20.1\",\n \"age\": 0,\n \"hwAddress\": \"0242.ee0d.c654\",\n \"interface\": \"Management0\"\n },\n {\n \"address\": \"172.20.20.11\",\n \"age\": 221,\n \"hwAddress\": \"0242.ac14.140b\",\n \"interface\": \"Management0\"\n }\n ],\n \"totalEntries\": 4,\n \"staticEntries\": 0,\n \"dynamicEntries\": 4,\n \"notLearnedEntries\": 0\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060465859, + "cmd_timestamp": 1702060465117, + "cmd": "show arp vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"ipV4Neighbors\": [\n {\n \"address\": \"10.2.1.2\",\n \"age\": 10243,\n \"hwAddress\": \"aac1.ab63.8556\",\n \"interface\": \"Ethernet1\"\n },\n {\n \"address\": \"10.2.2.2\",\n \"age\": 2048,\n \"hwAddress\": \"aac1.ab23.51ba\",\n \"interface\": \"Ethernet2\"\n },\n {\n \"address\": \"172.20.20.1\",\n \"age\": 0,\n \"hwAddress\": \"0242.ee0d.c654\",\n \"interface\": \"Management0\"\n }\n ],\n \"totalEntries\": 3,\n \"staticEntries\": 0,\n \"dynamicEntries\": 3,\n \"notLearnedEntries\": 0\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060468715, + "cmd_timestamp": 1702060467896, + "cmd": "show ip arp detail vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"all\",\"cnt-total\":3,\"TABLE_adj\":{\"ROW_adj\":[{\"intf-out\":\"mgmt0\",\"ip-addr-out\":\"10.0.0.2\",\"time-stamp\":\"PT1M28S\",\"mac\":\"5255.0a00.0002\",\"phy-intf\":\"mgmt0\",\"flags\":\"\",\"adj-vrf-name\":\"management\"},{\"intf-out\":\"Ethernet1/1\",\"ip-addr-out\":\"10.1.1.2\",\"time-stamp\":\"PT1M28S\",\"mac\":\"0cf6.8b00.1b08\",\"phy-intf\":\"Ethernet1/1\",\"flags\":\"\",\"adj-vrf-name\":\"default\"},{\"intf-out\":\"Ethernet1/2\",\"ip-addr-out\":\"10.1.2.2\",\"time-stamp\":\"PT1M35S\",\"mac\":\"0c43.9c00.1b08\",\"phy-intf\":\"Ethernet1/2\",\"flags\":\"\",\"adj-vrf-name\":\"default\"}]}}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060469572, + "cmd_timestamp": 1702060468715, + "cmd": "show ipv6 neighbor detail | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"invalid_pkt_cnt\":0,\"invalid_byte_cnt\":0,\"global_drop_pkt_cnt\":0,\"global_drop_byte_cnt\":0,\"global_punt_pkt_cnt\":0,\"global_punt_byte_cnt\":0,\"global_glean_pkt_cnt\":0,\"global_glean_byte_cnt\":0,\"glean_pkt_cnt\":0,\"glean_byte_cnt\":0,\"normal_pkt_cnt\":0,\"normal_byte_cnt\":0,\"last_updated\":\"never\",\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"default\",\"TABLE_afi\":{\"ROW_afi\":[{\"afi\":\"ipv6\",\"count\":0}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060470699, + "cmd_timestamp": 1702060469140, + "cmd": "show ip arp detail vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"all\",\"cnt-total\":3,\"TABLE_adj\":{\"ROW_adj\":[{\"intf-out\":\"mgmt0\",\"ip-addr-out\":\"10.0.0.2\",\"time-stamp\":\"PT1M22S\",\"mac\":\"5255.0a00.0002\",\"phy-intf\":\"mgmt0\",\"flags\":\"\",\"adj-vrf-name\":\"management\"},{\"intf-out\":\"Ethernet1/1\",\"ip-addr-out\":\"10.1.2.1\",\"time-stamp\":\"PT1M37S\",\"mac\":\"0c9a.ff00.1b08\",\"phy-intf\":\"Ethernet1/1\",\"flags\":\"\",\"adj-vrf-name\":\"default\"},{\"intf-out\":\"Vlan10\",\"ip-addr-out\":\"10.1.13.10\",\"time-stamp\":\"PT14M19S\",\"mac\":\"aac1.abed.c92e\",\"phy-intf\":\"Ethernet1/3\",\"flags\":\"\",\"adj-vrf-name\":\"default\"}]}}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060471684, + "cmd_timestamp": 1702060470699, + "cmd": "show ipv6 neighbor detail | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"invalid_pkt_cnt\":0,\"invalid_byte_cnt\":0,\"global_drop_pkt_cnt\":0,\"global_drop_byte_cnt\":0,\"global_punt_pkt_cnt\":0,\"global_punt_byte_cnt\":0,\"global_glean_pkt_cnt\":0,\"global_glean_byte_cnt\":0,\"glean_pkt_cnt\":0,\"glean_byte_cnt\":0,\"normal_pkt_cnt\":0,\"normal_byte_cnt\":0,\"last_updated\":\"never\",\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"default\",\"TABLE_afi\":{\"ROW_afi\":[{\"afi\":\"ipv6\",\"count\":0}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060470901, + "cmd_timestamp": 1702060469389, + "cmd": "show ip arp detail vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"all\",\"cnt-total\":3,\"TABLE_adj\":{\"ROW_adj\":[{\"intf-out\":\"mgmt0\",\"ip-addr-out\":\"10.0.0.2\",\"time-stamp\":\"PT1M47S\",\"mac\":\"5255.0a00.0002\",\"phy-intf\":\"mgmt0\",\"flags\":\"\",\"adj-vrf-name\":\"management\"},{\"intf-out\":\"Ethernet1/1\",\"ip-addr-out\":\"10.1.1.1\",\"time-stamp\":\"PT1M30S\",\"mac\":\"0c9a.ff00.1b08\",\"phy-intf\":\"Ethernet1/1\",\"flags\":\"\",\"adj-vrf-name\":\"default\"},{\"intf-out\":\"Ethernet1/3\",\"ip-addr-out\":\"10.1.11.10\",\"time-stamp\":\"PT16M54S\",\"mac\":\"aac1.ab06.7702\",\"phy-intf\":\"Ethernet1/3\",\"flags\":\"\",\"adj-vrf-name\":\"default\"}]}}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060472096, + "cmd_timestamp": 1702060470901, + "cmd": "show ipv6 neighbor detail | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"invalid_pkt_cnt\":0,\"invalid_byte_cnt\":0,\"global_drop_pkt_cnt\":0,\"global_drop_byte_cnt\":0,\"global_punt_pkt_cnt\":0,\"global_punt_byte_cnt\":0,\"global_glean_pkt_cnt\":0,\"global_glean_byte_cnt\":0,\"glean_pkt_cnt\":0,\"glean_byte_cnt\":0,\"normal_pkt_cnt\":0,\"normal_byte_cnt\":0,\"last_updated\":\"never\",\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"default\",\"TABLE_afi\":{\"ROW_afi\":[{\"afi\":\"ipv6\",\"count\":0}]}}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/bgp.output b/tests/integration/sqcmds/multicast-input/bgp.output new file mode 100644 index 0000000000..ee8ec56c49 --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/bgp.output @@ -0,0 +1,40 @@ +[ + { + "status": 0, + "timestamp": 1702060465496, + "cmd_timestamp": 1702060464586, + "cmd": "show ip bgp neighbors vrf all", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "" + } +][ + { + "status": 0, + "timestamp": 1702060465577, + "cmd_timestamp": 1702060464475, + "cmd": "show ip bgp neighbors vrf all", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "" + } +][ + { + "status": 0, + "timestamp": 1702060465734, + "cmd_timestamp": 1702060464365, + "cmd": "show ip bgp neighbors vrf all", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/devconfig.output b/tests/integration/sqcmds/multicast-input/devconfig.output new file mode 100644 index 0000000000..d330b2085a --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/devconfig.output @@ -0,0 +1,40 @@ +[ + { + "status": 0, + "timestamp": 1702060473960, + "cmd_timestamp": 1702060470660, + "cmd": "show running-config exclude security", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "\n!Command: show running-config exclude security\n!Running configuration last done at: Sun Nov 19 22:02:35 2023\n!Time: Fri Dec 8 17:42:16 2023\n\nversion 9.3(10) Bios:version \nhostname nxos-2\nvdc nxos-2 id 1\n limit-resource vlan minimum 16 maximum 4094\n limit-resource vrf minimum 2 maximum 4096\n limit-resource port-channel minimum 0 maximum 511\n limit-resource u4route-mem minimum 248 maximum 248\n limit-resource u6route-mem minimum 96 maximum 96\n limit-resource m4route-mem minimum 58 maximum 58\n limit-resource m6route-mem minimum 8 maximum 8\n\nfeature ospf\nfeature pim\nfeature netconf\nfeature grpc\n\nip domain-lookup\ncopp profile strict\nsnmp-server user admin network-admin auth md5 167A4BE392334D4172B4AB32B04C4C68DE54 priv 49736893F6027C5471F9A335E93458758343 localizedV2key\nrmon event 1 log trap public description FATAL(1) owner PMON@FATAL\nrmon event 2 log trap public description CRITICAL(2) owner PMON@CRITICAL\nrmon event 3 log trap public description ERROR(3) owner PMON@ERROR\nrmon event 4 log trap public description WARNING(4) owner PMON@WARNING\nrmon event 5 log trap public description INFORMATION(5) owner PMON@INFO\n\nip pim rp-address 2.1.2.2 group-list 224.0.0.0/4\nip pim ssm range 232.0.0.0/8\nvlan 1\n\nvrf context management\n\ninterface Ethernet1/1\n description \"Connection to nxos-1\"\n no switchport\n ip address 10.1.1.1/30\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\n no shutdown\n\ninterface Ethernet1/2\n description \"Connection to nxos-3\"\n no switchport\n ip address 10.1.2.1/30\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\n no shutdown\n\ninterface Ethernet1/3\n\ninterface Ethernet1/4\n\ninterface Ethernet1/5\n\ninterface Ethernet1/6\n\ninterface Ethernet1/7\n\ninterface Ethernet1/8\n\ninterface Ethernet1/9\n\ninterface Ethernet1/10\n\ninterface Ethernet1/11\n\ninterface Ethernet1/12\n\ninterface Ethernet1/13\n\ninterface Ethernet1/14\n\ninterface Ethernet1/15\n\ninterface Ethernet1/16\n\ninterface Ethernet1/17\n\ninterface Ethernet1/18\n\ninterface Ethernet1/19\n\ninterface Ethernet1/20\n\ninterface Ethernet1/21\n\ninterface Ethernet1/22\n\ninterface Ethernet1/23\n\ninterface Ethernet1/24\n\ninterface Ethernet1/25\n\ninterface Ethernet1/26\n\ninterface Ethernet1/27\n\ninterface Ethernet1/28\n\ninterface Ethernet1/29\n\ninterface Ethernet1/30\n\ninterface Ethernet1/31\n\ninterface Ethernet1/32\n\ninterface Ethernet1/33\n\ninterface Ethernet1/34\n\ninterface Ethernet1/35\n\ninterface Ethernet1/36\n\ninterface Ethernet1/37\n\ninterface Ethernet1/38\n\ninterface Ethernet1/39\n\ninterface Ethernet1/40\n\ninterface Ethernet1/41\n\ninterface Ethernet1/42\n\ninterface Ethernet1/43\n\ninterface Ethernet1/44\n\ninterface Ethernet1/45\n\ninterface Ethernet1/46\n\ninterface Ethernet1/47\n\ninterface Ethernet1/48\n\ninterface Ethernet1/49\n\ninterface Ethernet1/50\n\ninterface Ethernet1/51\n\ninterface Ethernet1/52\n\ninterface Ethernet1/53\n\ninterface Ethernet1/54\n\ninterface Ethernet1/55\n\ninterface Ethernet1/56\n\ninterface Ethernet1/57\n\ninterface Ethernet1/58\n\ninterface Ethernet1/59\n\ninterface Ethernet1/60\n\ninterface Ethernet1/61\n\ninterface Ethernet1/62\n\ninterface Ethernet1/63\n\ninterface Ethernet1/64\n\ninterface mgmt0\n vrf member management\n ip address 10.0.0.15/24\n\ninterface loopback0\n ip address 2.1.2.2/32\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\nicam monitor scale\n\nline console\nline vty\nrouter ospf 1\n area 0.0.0.0 range 2.1.2.2/32\n area 0.0.0.0 range 10.1.0.0/16\n\n\n\n" + } +][ + { + "status": 0, + "timestamp": 1702060475584, + "cmd_timestamp": 1702060473073, + "cmd": "show running-config exclude security", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "\n!Command: show running-config exclude security\n!Running configuration last done at: Sun Nov 19 22:02:39 2023\n!Time: Fri Dec 8 17:41:55 2023\n\nversion 9.3(10) Bios:version \nhostname nxos-3\nvdc nxos-3 id 1\n limit-resource vlan minimum 16 maximum 4094\n limit-resource vrf minimum 2 maximum 4096\n limit-resource port-channel minimum 0 maximum 511\n limit-resource u4route-mem minimum 248 maximum 248\n limit-resource u6route-mem minimum 96 maximum 96\n limit-resource m4route-mem minimum 58 maximum 58\n limit-resource m6route-mem minimum 8 maximum 8\n\nfeature ospf\nfeature pim\nfeature netconf\nfeature grpc\nfeature interface-vlan\n\nip domain-lookup\ncopp profile strict\nsnmp-server user admin network-admin auth md5 165F8B0435E99FF7756CFB6ED4D0699B9C9A priv 5236C7110E9BEF894471BB5ED8987F91CACD localizedV2key\nrmon event 1 log trap public description FATAL(1) owner PMON@FATAL\nrmon event 2 log trap public description CRITICAL(2) owner PMON@CRITICAL\nrmon event 3 log trap public description ERROR(3) owner PMON@ERROR\nrmon event 4 log trap public description WARNING(4) owner PMON@WARNING\nrmon event 5 log trap public description INFORMATION(5) owner PMON@INFO\n\nip pim rp-address 2.1.2.2 group-list 224.0.0.0/4\nip pim ssm range 232.0.0.0/8\nvlan 1,10\n\nvrf context management\n\ninterface Vlan1\n\ninterface Vlan10\n no shutdown\n ip address 10.1.13.1/24\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\n ip igmp version 3\n\ninterface Ethernet1/1\n description \"Connection to nxos-3\"\n no switchport\n ip address 10.1.2.2/30\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\n no shutdown\n\ninterface Ethernet1/2\n\ninterface Ethernet1/3\n switchport access vlan 10\n\ninterface Ethernet1/4\n\ninterface Ethernet1/5\n\ninterface Ethernet1/6\n\ninterface Ethernet1/7\n\ninterface Ethernet1/8\n\ninterface Ethernet1/9\n\ninterface Ethernet1/10\n\ninterface Ethernet1/11\n\ninterface Ethernet1/12\n\ninterface Ethernet1/13\n\ninterface Ethernet1/14\n\ninterface Ethernet1/15\n\ninterface Ethernet1/16\n\ninterface Ethernet1/17\n\ninterface Ethernet1/18\n\ninterface Ethernet1/19\n\ninterface Ethernet1/20\n\ninterface Ethernet1/21\n\ninterface Ethernet1/22\n\ninterface Ethernet1/23\n\ninterface Ethernet1/24\n\ninterface Ethernet1/25\n\ninterface Ethernet1/26\n\ninterface Ethernet1/27\n\ninterface Ethernet1/28\n\ninterface Ethernet1/29\n\ninterface Ethernet1/30\n\ninterface Ethernet1/31\n\ninterface Ethernet1/32\n\ninterface Ethernet1/33\n\ninterface Ethernet1/34\n\ninterface Ethernet1/35\n\ninterface Ethernet1/36\n\ninterface Ethernet1/37\n\ninterface Ethernet1/38\n\ninterface Ethernet1/39\n\ninterface Ethernet1/40\n\ninterface Ethernet1/41\n\ninterface Ethernet1/42\n\ninterface Ethernet1/43\n\ninterface Ethernet1/44\n\ninterface Ethernet1/45\n\ninterface Ethernet1/46\n\ninterface Ethernet1/47\n\ninterface Ethernet1/48\n\ninterface Ethernet1/49\n\ninterface Ethernet1/50\n\ninterface Ethernet1/51\n\ninterface Ethernet1/52\n\ninterface Ethernet1/53\n\ninterface Ethernet1/54\n\ninterface Ethernet1/55\n\ninterface Ethernet1/56\n\ninterface Ethernet1/57\n\ninterface Ethernet1/58\n\ninterface Ethernet1/59\n\ninterface Ethernet1/60\n\ninterface Ethernet1/61\n\ninterface Ethernet1/62\n\ninterface Ethernet1/63\n\ninterface Ethernet1/64\n\ninterface mgmt0\n vrf member management\n ip address 10.0.0.15/24\n\ninterface loopback0\n ip address 3.1.3.3/32\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\nicam monitor scale\n\nline console\nline vty\nrouter ospf 1\n area 0.0.0.0 range 3.1.3.3/32\n area 0.0.0.0 range 10.1.0.0/16\n\n\n\n" + } +][ + { + "status": 0, + "timestamp": 1702060478181, + "cmd_timestamp": 1702060472941, + "cmd": "show running-config exclude security", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "\n!Command: show running-config exclude security\n!Running configuration last done at: Sun Nov 19 22:03:08 2023\n!Time: Fri Dec 8 17:41:51 2023\n\nversion 9.3(10) Bios:version \nhostname nxos-1\nvdc nxos-1 id 1\n limit-resource vlan minimum 16 maximum 4094\n limit-resource vrf minimum 2 maximum 4096\n limit-resource port-channel minimum 0 maximum 511\n limit-resource u4route-mem minimum 248 maximum 248\n limit-resource u6route-mem minimum 96 maximum 96\n limit-resource m4route-mem minimum 58 maximum 58\n limit-resource m6route-mem minimum 8 maximum 8\n\nfeature ospf\nfeature pim\nfeature netconf\nfeature grpc\nfeature interface-vlan\n\nip domain-lookup\ncopp profile strict\nsnmp-server user admin network-admin auth md5 167BAC8F1AE59D24FC1E6651FCACC5D78EBD priv 483BA9936AB7CD30E7130B27A0BBE89C80A9 localizedV2key\nrmon event 1 log trap public description FATAL(1) owner PMON@FATAL\nrmon event 2 log trap public description CRITICAL(2) owner PMON@CRITICAL\nrmon event 3 log trap public description ERROR(3) owner PMON@ERROR\nrmon event 4 log trap public description WARNING(4) owner PMON@WARNING\nrmon event 5 log trap public description INFORMATION(5) owner PMON@INFO\n\nip pim rp-address 2.1.2.2 group-list 224.0.0.0/4\nip pim ssm range 232.0.0.0/8\nvlan 1\n\nvrf context management\n\ninterface Vlan1\n\ninterface Ethernet1/1\n description \"Connection to nxos-2\"\n no switchport\n ip address 10.1.1.2/30\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\n no shutdown\n\ninterface Ethernet1/2\n\ninterface Ethernet1/3\n no switchport\n ip address 10.1.11.1/24\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\n no shutdown\n\ninterface Ethernet1/4\n\ninterface Ethernet1/5\n\ninterface Ethernet1/6\n\ninterface Ethernet1/7\n\ninterface Ethernet1/8\n\ninterface Ethernet1/9\n\ninterface Ethernet1/10\n\ninterface Ethernet1/11\n\ninterface Ethernet1/12\n\ninterface Ethernet1/13\n\ninterface Ethernet1/14\n\ninterface Ethernet1/15\n\ninterface Ethernet1/16\n\ninterface Ethernet1/17\n\ninterface Ethernet1/18\n\ninterface Ethernet1/19\n\ninterface Ethernet1/20\n\ninterface Ethernet1/21\n\ninterface Ethernet1/22\n\ninterface Ethernet1/23\n\ninterface Ethernet1/24\n\ninterface Ethernet1/25\n\ninterface Ethernet1/26\n\ninterface Ethernet1/27\n\ninterface Ethernet1/28\n\ninterface Ethernet1/29\n\ninterface Ethernet1/30\n\ninterface Ethernet1/31\n\ninterface Ethernet1/32\n\ninterface Ethernet1/33\n\ninterface Ethernet1/34\n\ninterface Ethernet1/35\n\ninterface Ethernet1/36\n\ninterface Ethernet1/37\n\ninterface Ethernet1/38\n\ninterface Ethernet1/39\n\ninterface Ethernet1/40\n\ninterface Ethernet1/41\n\ninterface Ethernet1/42\n\ninterface Ethernet1/43\n\ninterface Ethernet1/44\n\ninterface Ethernet1/45\n\ninterface Ethernet1/46\n\ninterface Ethernet1/47\n\ninterface Ethernet1/48\n\ninterface Ethernet1/49\n\ninterface Ethernet1/50\n\ninterface Ethernet1/51\n\ninterface Ethernet1/52\n\ninterface Ethernet1/53\n\ninterface Ethernet1/54\n\ninterface Ethernet1/55\n\ninterface Ethernet1/56\n\ninterface Ethernet1/57\n\ninterface Ethernet1/58\n\ninterface Ethernet1/59\n\ninterface Ethernet1/60\n\ninterface Ethernet1/61\n\ninterface Ethernet1/62\n\ninterface Ethernet1/63\n\ninterface Ethernet1/64\n\ninterface mgmt0\n vrf member management\n ip address 10.0.0.15/24\n\ninterface loopback0\n ip address 1.1.1.1/32\n ip router ospf 1 area 0.0.0.0\n ip pim sparse-mode\nicam monitor scale\n\nline console\nline vty\nrouter ospf 1\n area 0.0.0.0 range 1.1.1.1/32\n area 0.0.0.0 range 10.1.0.0/16\n\n\n\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/device.output b/tests/integration/sqcmds/multicast-input/device.output new file mode 100644 index 0000000000..13eeece835 --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/device.output @@ -0,0 +1,79 @@ +[ + { + "status": 0, + "timestamp": 1702060463113, + "cmd_timestamp": 1702060462382, + "cmd": "show version| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"mfgName\": \"Arista\",\n \"modelName\": \"cEOSLab\",\n \"hardwareRevision\": \"\",\n \"serialNumber\": \"54B12A226C2A8B12AC3210AD67F90CF4\",\n \"systemMacAddress\": \"00:1c:73:99:bc:e4\",\n \"hwMacAddress\": \"00:00:00:00:00:00\",\n \"configMacAddress\": \"00:00:00:00:00:00\",\n \"version\": \"4.29.5M-33599604.4295M (engineering build)\",\n \"architecture\": \"x86_64\",\n \"internalVersion\": \"4.29.5M-33599604.4295M\",\n \"internalBuildId\": \"d72486ba-a5e3-493b-a94d-9e57576daf4e\",\n \"imageFormatVersion\": \"1.0\",\n \"imageOptimization\": \"None\",\n \"cEosToolsVersion\": \"(unknown)\",\n \"kernelVersion\": \"5.15.0-88-generic\",\n \"bootupTimestamp\": 1700446207.565885,\n \"uptime\": 1614255.5197834969,\n \"memTotal\": 32819472,\n \"memFree\": 8388640,\n \"isIntlVersion\": false\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463357, + "cmd_timestamp": 1702060462382, + "cmd": "show version| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"mfgName\": \"Arista\",\n \"modelName\": \"cEOSLab\",\n \"hardwareRevision\": \"\",\n \"serialNumber\": \"87B87D8038E5112ADE1EA3004CF9B516\",\n \"systemMacAddress\": \"00:1c:73:79:0f:4b\",\n \"hwMacAddress\": \"00:00:00:00:00:00\",\n \"configMacAddress\": \"00:00:00:00:00:00\",\n \"version\": \"4.29.5M-33599604.4295M (engineering build)\",\n \"architecture\": \"x86_64\",\n \"internalVersion\": \"4.29.5M-33599604.4295M\",\n \"internalBuildId\": \"d72486ba-a5e3-493b-a94d-9e57576daf4e\",\n \"imageFormatVersion\": \"1.0\",\n \"imageOptimization\": \"None\",\n \"cEosToolsVersion\": \"(unknown)\",\n \"kernelVersion\": \"5.15.0-88-generic\",\n \"bootupTimestamp\": 1700446207.5858848,\n \"uptime\": 1614255.7151193619,\n \"memTotal\": 32819472,\n \"memFree\": 8397636,\n \"isIntlVersion\": false\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463688, + "cmd_timestamp": 1702060462966, + "cmd": "show version| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"mfgName\": \"Arista\",\n \"modelName\": \"cEOSLab\",\n \"hardwareRevision\": \"\",\n \"serialNumber\": \"B9C528CB2C91104A888BD2F63152E958\",\n \"systemMacAddress\": \"00:1c:73:ce:e6:30\",\n \"hwMacAddress\": \"00:00:00:00:00:00\",\n \"configMacAddress\": \"00:00:00:00:00:00\",\n \"version\": \"4.29.5M-33599604.4295M (engineering build)\",\n \"architecture\": \"x86_64\",\n \"internalVersion\": \"4.29.5M-33599604.4295M\",\n \"internalBuildId\": \"d72486ba-a5e3-493b-a94d-9e57576daf4e\",\n \"imageFormatVersion\": \"1.0\",\n \"imageOptimization\": \"None\",\n \"cEosToolsVersion\": \"(unknown)\",\n \"kernelVersion\": \"5.15.0-88-generic\",\n \"bootupTimestamp\": 1700446207.921879,\n \"uptime\": 1614255.7519741058,\n \"memTotal\": 32819472,\n \"memFree\": 8390456,\n \"isIntlVersion\": false\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060470010, + "cmd_timestamp": 1702060462383, + "cmd": "show version | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"header_str\":\"Cisco Nexus Operating System (NX-OS) Software\\nTAC support: http://www.cisco.com/tac\\nDocuments: http://www.cisco.com/en/US/products/ps9372/tsd_products_support_series_home.html\\nCopyright (c) 2002-2022, Cisco Systems, Inc. All rights reserved.\\nThe copyrights to certain works contained herein are owned by\\nother third parties and are used and distributed under license.\\nSome parts of this software are covered under the GNU Public\\nLicense. A copy of the license is available at\\nhttp://www.gnu.org/licenses/gpl.html.\\n\\nNexus 9000v is a demo version of the Nexus Operating System\\n\",\"bios_ver_str\":\"\",\"kickstart_ver_str\":\"9.3(10)\",\"nxos_ver_str\":\"9.3(10)\",\"bios_cmpl_time\":\"\",\"kick_file_name\":\"bootflash:///nxos.9.3.10.bin\",\"nxos_file_name\":\"bootflash:///nxos.9.3.10.bin\",\"kick_cmpl_time\":\"7/8/2022 9:00:00\",\"nxos_cmpl_time\":\"7/8/2022 9:00:00\",\"kick_tmstmp\":\"07/08/2022 18:10:17\",\"nxos_tmstmp\":\"07/08/2022 18:10:17\",\"chassis_id\":\"Nexus9000 C9300v Chassis\",\"cpu_name\":\"Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz\",\"memory\":8160100,\"mem_type\":\"kB\",\"proc_board_id\":\"9B7VAUMC964\",\"host_name\":\"nxos-2\",\"bootflash_size\":4287040,\"kern_uptm_days\":18,\"kern_uptm_hrs\":20,\"kern_uptm_mins\":36,\"kern_uptm_secs\":55,\"rr_reason\":\"Unknown\",\"rr_sys_ver\":\"\",\"rr_service\":\"\",\"plugins\":\"Core Plugin, Ethernet Plugin\",\"manufacturer\":\"Cisco Systems, Inc.\",\"TABLE_package_list\":{\"ROW_package_list\":[{\"package_id\":\"\"}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060472297, + "cmd_timestamp": 1702060462383, + "cmd": "show version | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"header_str\":\"Cisco Nexus Operating System (NX-OS) Software\\nTAC support: http://www.cisco.com/tac\\nDocuments: http://www.cisco.com/en/US/products/ps9372/tsd_products_support_series_home.html\\nCopyright (c) 2002-2022, Cisco Systems, Inc. All rights reserved.\\nThe copyrights to certain works contained herein are owned by\\nother third parties and are used and distributed under license.\\nSome parts of this software are covered under the GNU Public\\nLicense. A copy of the license is available at\\nhttp://www.gnu.org/licenses/gpl.html.\\n\\nNexus 9000v is a demo version of the Nexus Operating System\\n\",\"bios_ver_str\":\"\",\"kickstart_ver_str\":\"9.3(10)\",\"nxos_ver_str\":\"9.3(10)\",\"bios_cmpl_time\":\"\",\"kick_file_name\":\"bootflash:///nxos.9.3.10.bin\",\"nxos_file_name\":\"bootflash:///nxos.9.3.10.bin\",\"kick_cmpl_time\":\"7/8/2022 9:00:00\",\"nxos_cmpl_time\":\"7/8/2022 9:00:00\",\"kick_tmstmp\":\"07/08/2022 18:10:17\",\"nxos_tmstmp\":\"07/08/2022 18:10:17\",\"chassis_id\":\"Nexus9000 C9300v Chassis\",\"cpu_name\":\"Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz\",\"memory\":8160100,\"mem_type\":\"kB\",\"proc_board_id\":\"93P8TA801YX\",\"host_name\":\"nxos-3\",\"bootflash_size\":4287040,\"kern_uptm_days\":18,\"kern_uptm_hrs\":20,\"kern_uptm_mins\":36,\"kern_uptm_secs\":51,\"rr_reason\":\"Unknown\",\"rr_sys_ver\":\"\",\"rr_service\":\"\",\"plugins\":\"Core Plugin, Ethernet Plugin\",\"manufacturer\":\"Cisco Systems, Inc.\",\"TABLE_package_list\":{\"ROW_package_list\":[{\"package_id\":\"\"}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060472508, + "cmd_timestamp": 1702060462383, + "cmd": "show version | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"header_str\":\"Cisco Nexus Operating System (NX-OS) Software\\nTAC support: http://www.cisco.com/tac\\nDocuments: http://www.cisco.com/en/US/products/ps9372/tsd_products_support_series_home.html\\nCopyright (c) 2002-2022, Cisco Systems, Inc. All rights reserved.\\nThe copyrights to certain works contained herein are owned by\\nother third parties and are used and distributed under license.\\nSome parts of this software are covered under the GNU Public\\nLicense. A copy of the license is available at\\nhttp://www.gnu.org/licenses/gpl.html.\\n\\nNexus 9000v is a demo version of the Nexus Operating System\\n\",\"bios_ver_str\":\"\",\"kickstart_ver_str\":\"9.3(10)\",\"nxos_ver_str\":\"9.3(10)\",\"bios_cmpl_time\":\"\",\"kick_file_name\":\"bootflash:///nxos.9.3.10.bin\",\"nxos_file_name\":\"bootflash:///nxos.9.3.10.bin\",\"kick_cmpl_time\":\"7/8/2022 9:00:00\",\"nxos_cmpl_time\":\"7/8/2022 9:00:00\",\"kick_tmstmp\":\"07/08/2022 18:10:17\",\"nxos_tmstmp\":\"07/08/2022 18:10:17\",\"chassis_id\":\"Nexus9000 C9300v Chassis\",\"cpu_name\":\"Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz\",\"memory\":8160100,\"mem_type\":\"kB\",\"proc_board_id\":\"9WLQBV4KJSF\",\"host_name\":\"nxos-1\",\"bootflash_size\":4287040,\"kern_uptm_days\":18,\"kern_uptm_hrs\":20,\"kern_uptm_mins\":36,\"kern_uptm_secs\":47,\"rr_reason\":\"Unknown\",\"rr_sys_ver\":\"\",\"rr_service\":\"\",\"plugins\":\"Core Plugin, Ethernet Plugin\",\"manufacturer\":\"Cisco Systems, Inc.\",\"TABLE_package_list\":{\"ROW_package_list\":[{\"package_id\":\"\"}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/igmp.output b/tests/integration/sqcmds/multicast-input/igmp.output new file mode 100644 index 0000000000..530ea3df82 --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/igmp.output @@ -0,0 +1,115 @@ +[ + { + "status": 0, + "timestamp": 1702060462881, + "cmd_timestamp": 1702060462382, + "cmd": "show ip igmp groups| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"groupList\": []\n}\n" + }, + { + "status": 0, + "timestamp": 1702060463488, + "cmd_timestamp": 1702060462881, + "cmd": "show ip igmp static-groups| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"intfAddrs\": {\n \"Ethernet3\": {\n \"groupAddrsList\": [],\n \"aclInfo\": {}\n },\n \"Ethernet1\": {\n \"groupAddrsList\": [],\n \"aclInfo\": {}\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060462847, + "cmd_timestamp": 1702060462382, + "cmd": "show ip igmp groups| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"groupList\": [\n {\n \"filterMode\": \"filterModeExclude\",\n \"groupAddress\": \"225.2.0.1\",\n \"interfaceName\": \"Ethernet3\",\n \"uptime\": 1700447660.872831,\n \"expires\": 1702060634.788847,\n \"lastReporter\": \"10.2.11.10\"\n }\n ]\n}\n" + }, + { + "status": 0, + "timestamp": 1702060463725, + "cmd_timestamp": 1702060462847, + "cmd": "show ip igmp static-groups| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"intfAddrs\": {\n \"Ethernet3\": {\n \"groupAddrsList\": [],\n \"aclInfo\": {}\n },\n \"Ethernet1\": {\n \"groupAddrsList\": [],\n \"aclInfo\": {}\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463912, + "cmd_timestamp": 1702060462383, + "cmd": "show ip igmp groups vrf all", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "IGMP Connected Group Membership for VRF \"default\" - 0 total entries\nType: S - Static, D - Dynamic, L - Local, T - SSM Translated, H - Host Proxy\n * - Cache Only\nGroup Address Type Interface Uptime Expires Last Reporter\n\n" + } +][ + { + "status": 0, + "timestamp": 1702060464037, + "cmd_timestamp": 1702060462383, + "cmd": "show ip igmp groups vrf all", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "IGMP Connected Group Membership for VRF \"default\" - 0 total entries\nType: S - Static, D - Dynamic, L - Local, T - SSM Translated, H - Host Proxy\n * - Cache Only\nGroup Address Type Interface Uptime Expires Last Reporter\n\n" + } +][ + { + "status": 0, + "timestamp": 1702060463397, + "cmd_timestamp": 1702060462382, + "cmd": "show ip igmp groups| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"groupList\": []\n}\n" + }, + { + "status": 0, + "timestamp": 1702060464264, + "cmd_timestamp": 1702060463397, + "cmd": "show ip igmp static-groups| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"intfAddrs\": {\n \"Ethernet2\": {\n \"groupAddrsList\": [],\n \"aclInfo\": {}\n },\n \"Ethernet1\": {\n \"groupAddrsList\": [],\n \"aclInfo\": {}\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464665, + "cmd_timestamp": 1702060462383, + "cmd": "show ip igmp groups vrf all", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "IGMP Connected Group Membership for VRF \"default\" - 1 total entries\nType: S - Static, D - Dynamic, L - Local, T - SSM Translated, H - Host Proxy\n * - Cache Only\nGroup Address Type Interface Uptime Expires Last Reporter\n225.1.0.1 D Ethernet1/3 2w4d 00:03:08 10.1.11.10\n\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/interfaces.output b/tests/integration/sqcmds/multicast-input/interfaces.output new file mode 100644 index 0000000000..a93c4fbec2 --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/interfaces.output @@ -0,0 +1,331 @@ +[ + { + "status": 0, + "timestamp": 1702060464952, + "cmd_timestamp": 1702060463958, + "cmd": "show interfaces| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"interfaces\": {\n \"Ethernet1\": {\n \"name\": \"Ethernet1\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"10.2.1.2\",\n \"maskLen\": 30\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"physicalAddress\": \"aa:c1:ab:63:85:56\",\n \"burnedInAddress\": \"aa:c1:ab:63:85:56\",\n \"description\": \"\\\"Connection to ceos-2\\\"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446248.0146987,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 0.0,\n \"inPktsRate\": 0.0,\n \"outBitsRate\": 0.0,\n \"outPktsRate\": 0.0\n },\n \"interfaceCounters\": {\n \"inOctets\": 24987703068,\n \"inUcastPkts\": 246,\n \"inMulticastPkts\": 16767908,\n \"inBroadcastPkts\": 1,\n \"inDiscards\": 0,\n \"inTotalPkts\": 16768155,\n \"outOctets\": 0,\n \"outUcastPkts\": 0,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 0,\n \"linkStatusChanges\": 2,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.815595\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"unknown\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Ethernet3\": {\n \"name\": \"Ethernet3\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"10.2.11.1\",\n \"maskLen\": 24\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"physicalAddress\": \"aa:c1:ab:29:53:dd\",\n \"burnedInAddress\": \"aa:c1:ab:29:53:dd\",\n \"description\": \"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446248.0688298,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 0.0,\n \"inPktsRate\": 0.0,\n \"outBitsRate\": 0.0,\n \"outPktsRate\": 0.0\n },\n \"interfaceCounters\": {\n \"inOctets\": 788310,\n \"inUcastPkts\": 138,\n \"inMulticastPkts\": 13346,\n \"inBroadcastPkts\": 1,\n \"inDiscards\": 0,\n \"inTotalPkts\": 13485,\n \"outOctets\": 0,\n \"outUcastPkts\": 0,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 0,\n \"linkStatusChanges\": 2,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.844011\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"unknown\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Management0\": {\n \"name\": \"Management0\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"172.20.20.8\",\n \"maskLen\": 24\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"interfaceAddressIp6\": {\n \"linkLocalIp6\": {\n \"address\": \"fe80::21c:73ff:fe72:f558\",\n \"subnet\": \"fe80::/64\",\n \"active\": true,\n \"leastpref\": false,\n \"dadfailed\": false\n },\n \"globalUnicastIp6s\": [\n {\n \"address\": \"2001:172:20:20::8\",\n \"subnet\": \"2001:172:20:20::/64\",\n \"active\": true,\n \"leastpref\": false,\n \"dadfailed\": false\n }\n ],\n \"globalAddressesAreVirtual\": false,\n \"addrSource\": \"manual\"\n },\n \"physicalAddress\": \"00:1c:73:72:f5:58\",\n \"burnedInAddress\": \"00:1c:73:72:f5:58\",\n \"description\": \"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446239.7470949,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 642.6025607016513,\n \"inPktsRate\": 0.6109780213920855,\n \"outBitsRate\": 673.3507037494957,\n \"outPktsRate\": 0.5129248979937083\n },\n \"interfaceCounters\": {\n \"inOctets\": 22317191,\n \"inUcastPkts\": 120736,\n \"inMulticastPkts\": 0,\n \"inBroadcastPkts\": 0,\n \"inDiscards\": 0,\n \"inTotalPkts\": 120736,\n \"outOctets\": 11224837,\n \"outUcastPkts\": 61623,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 61623,\n \"linkStatusChanges\": 3,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.848856\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"success\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Loopback0\": {\n \"name\": \"Loopback0\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"loopback\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"1.2.1.1\",\n \"maskLen\": 32\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"description\": \"\",\n \"bandwidth\": 0,\n \"mtu\": 65535,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446242.089066\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060465586, + "cmd_timestamp": 1702060464952, + "cmd": "show vrf| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"routeDistinguisher\": \"\",\n \"protocols\": {\n \"ipv4\": {\n \"supported\": true,\n \"protocolState\": \"up\",\n \"routingState\": \"up\",\n \"multicastState\": \"up\"\n },\n \"ipv6\": {\n \"supported\": true,\n \"protocolState\": \"up\",\n \"routingState\": \"down\"\n }\n },\n \"vrfState\": \"up\",\n \"interfacesV4\": [\n \"Ethernet1\",\n \"Ethernet3\",\n \"Loopback0\",\n \"Management0\"\n ],\n \"interfacesV6\": [\n \"Management0\"\n ],\n \"interfaces\": [\n \"Ethernet1\",\n \"Ethernet3\",\n \"Loopback0\",\n \"Management0\"\n ]\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060466342, + "cmd_timestamp": 1702060465586, + "cmd": "show ip virtual-router| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"virtualMacs\": [\n {\n \"macAddress\": \"00:00:00:00:00:00\",\n \"macType\": \"varp\",\n \"mask\": \"ff:ff:ff:ff:ff:ff\",\n \"subnetRoutes\": false\n }\n ],\n \"advertiseInterval\": 30,\n \"virtualRouters\": []\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464885, + "cmd_timestamp": 1702060464063, + "cmd": "show interfaces| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"interfaces\": {\n \"Ethernet1\": {\n \"name\": \"Ethernet1\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"10.2.2.2\",\n \"maskLen\": 30\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"physicalAddress\": \"aa:c1:ab:23:51:ba\",\n \"burnedInAddress\": \"aa:c1:ab:23:51:ba\",\n \"description\": \"\\\"Connection to nxos-3\\\"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446247.3781228,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 0.0,\n \"inPktsRate\": 0.0,\n \"outBitsRate\": 0.0,\n \"outPktsRate\": 0.0\n },\n \"interfaceCounters\": {\n \"inOctets\": 31953332,\n \"inUcastPkts\": 3585,\n \"inMulticastPkts\": 287656,\n \"inBroadcastPkts\": 1,\n \"inDiscards\": 0,\n \"inTotalPkts\": 291242,\n \"outOctets\": 0,\n \"outUcastPkts\": 0,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 0,\n \"linkStatusChanges\": 2,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.767987\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"unknown\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Ethernet3\": {\n \"name\": \"Ethernet3\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"10.2.13.1\",\n \"maskLen\": 24\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"physicalAddress\": \"aa:c1:ab:03:38:ff\",\n \"burnedInAddress\": \"aa:c1:ab:03:38:ff\",\n \"description\": \"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446247.403654,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 0.0,\n \"inPktsRate\": 0.0,\n \"outBitsRate\": 0.0,\n \"outPktsRate\": 0.0\n },\n \"interfaceCounters\": {\n \"inOctets\": 24954733592,\n \"inUcastPkts\": 132,\n \"inMulticastPkts\": 16461325,\n \"inBroadcastPkts\": 1,\n \"inDiscards\": 0,\n \"inTotalPkts\": 16461458,\n \"outOctets\": 0,\n \"outUcastPkts\": 0,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 0,\n \"linkStatusChanges\": 2,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.769928\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"unknown\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Management0\": {\n \"name\": \"Management0\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"172.20.20.12\",\n \"maskLen\": 24\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"interfaceAddressIp6\": {\n \"linkLocalIp6\": {\n \"address\": \"fe80::21c:73ff:fe77:63d1\",\n \"subnet\": \"fe80::/64\",\n \"active\": true,\n \"leastpref\": false,\n \"dadfailed\": false\n },\n \"globalUnicastIp6s\": [\n {\n \"address\": \"2001:172:20:20::c\",\n \"subnet\": \"2001:172:20:20::/64\",\n \"active\": true,\n \"leastpref\": false,\n \"dadfailed\": false\n }\n ],\n \"globalAddressesAreVirtual\": false,\n \"addrSource\": \"manual\"\n },\n \"physicalAddress\": \"00:1c:73:77:63:d1\",\n \"burnedInAddress\": \"00:1c:73:77:63:d1\",\n \"description\": \"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446239.950202,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 651.2896872531095,\n \"inPktsRate\": 0.6165174902785435,\n \"outBitsRate\": 686.7527572339901,\n \"outPktsRate\": 0.5342383527009344\n },\n \"interfaceCounters\": {\n \"inOctets\": 22305482,\n \"inUcastPkts\": 120661,\n \"inMulticastPkts\": 0,\n \"inBroadcastPkts\": 0,\n \"inDiscards\": 0,\n \"inTotalPkts\": 120661,\n \"outOctets\": 11217640,\n \"outUcastPkts\": 61605,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 61605,\n \"linkStatusChanges\": 3,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.773966\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"success\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Loopback0\": {\n \"name\": \"Loopback0\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"loopback\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"3.2.3.3\",\n \"maskLen\": 32\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"description\": \"\",\n \"bandwidth\": 0,\n \"mtu\": 65535,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446241.1131392\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060465719, + "cmd_timestamp": 1702060464885, + "cmd": "show vrf| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"routeDistinguisher\": \"\",\n \"protocols\": {\n \"ipv4\": {\n \"supported\": true,\n \"protocolState\": \"up\",\n \"routingState\": \"up\",\n \"multicastState\": \"up\"\n },\n \"ipv6\": {\n \"supported\": true,\n \"protocolState\": \"up\",\n \"routingState\": \"down\"\n }\n },\n \"vrfState\": \"up\",\n \"interfacesV4\": [\n \"Ethernet1\",\n \"Ethernet3\",\n \"Loopback0\",\n \"Management0\"\n ],\n \"interfacesV6\": [\n \"Management0\"\n ],\n \"interfaces\": [\n \"Ethernet1\",\n \"Ethernet3\",\n \"Loopback0\",\n \"Management0\"\n ]\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060466695, + "cmd_timestamp": 1702060465719, + "cmd": "show ip virtual-router| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"virtualMacs\": [\n {\n \"macAddress\": \"00:00:00:00:00:00\",\n \"macType\": \"varp\",\n \"mask\": \"ff:ff:ff:ff:ff:ff\",\n \"subnetRoutes\": false\n }\n ],\n \"advertiseInterval\": 30,\n \"virtualRouters\": []\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060465059, + "cmd_timestamp": 1702060464264, + "cmd": "show interfaces| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"interfaces\": {\n \"Ethernet2\": {\n \"name\": \"Ethernet2\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"10.2.2.1\",\n \"maskLen\": 30\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"physicalAddress\": \"aa:c1:ab:07:cc:86\",\n \"burnedInAddress\": \"aa:c1:ab:07:cc:86\",\n \"description\": \"\\\"Connection to ceos-3\\\"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446247.0502863,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 0.0,\n \"inPktsRate\": 0.0,\n \"outBitsRate\": 0.0,\n \"outPktsRate\": 0.0\n },\n \"interfaceCounters\": {\n \"inOctets\": 24987778363,\n \"inUcastPkts\": 3697,\n \"inMulticastPkts\": 16758749,\n \"inBroadcastPkts\": 0,\n \"inDiscards\": 0,\n \"inTotalPkts\": 16762446,\n \"outOctets\": 0,\n \"outUcastPkts\": 0,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 0,\n \"linkStatusChanges\": 2,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.871118\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"unknown\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Ethernet1\": {\n \"name\": \"Ethernet1\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"10.2.1.1\",\n \"maskLen\": 30\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"physicalAddress\": \"aa:c1:ab:c2:01:42\",\n \"burnedInAddress\": \"aa:c1:ab:c2:01:42\",\n \"description\": \"\\\"Connection to ceos-1\\\"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446247.0096014,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 0.0,\n \"inPktsRate\": 0.0,\n \"outBitsRate\": 0.0,\n \"outPktsRate\": 0.0\n },\n \"interfaceCounters\": {\n \"inOctets\": 33908019,\n \"inUcastPkts\": 247,\n \"inMulticastPkts\": 311309,\n \"inBroadcastPkts\": 0,\n \"inDiscards\": 0,\n \"inTotalPkts\": 311556,\n \"outOctets\": 0,\n \"outUcastPkts\": 0,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 0,\n \"linkStatusChanges\": 2,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.881268\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"unknown\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Management0\": {\n \"name\": \"Management0\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"ethernet\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"172.20.20.10\",\n \"maskLen\": 24\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"interfaceAddressIp6\": {\n \"linkLocalIp6\": {\n \"address\": \"fe80::21c:73ff:fe6a:db\",\n \"subnet\": \"fe80::/64\",\n \"active\": true,\n \"leastpref\": false,\n \"dadfailed\": false\n },\n \"globalUnicastIp6s\": [\n {\n \"address\": \"2001:172:20:20::a\",\n \"subnet\": \"2001:172:20:20::/64\",\n \"active\": true,\n \"leastpref\": false,\n \"dadfailed\": false\n }\n ],\n \"globalAddressesAreVirtual\": false,\n \"addrSource\": \"manual\"\n },\n \"physicalAddress\": \"00:1c:73:6a:00:db\",\n \"burnedInAddress\": \"00:1c:73:6a:00:db\",\n \"description\": \"\",\n \"bandwidth\": 1000000000,\n \"mtu\": 1500,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446239.7023754,\n \"interfaceStatistics\": {\n \"updateInterval\": 300.0,\n \"inBitsRate\": 532.6614739411349,\n \"inPktsRate\": 0.4710847661956044,\n \"outBitsRate\": 536.6940004827989,\n \"outPktsRate\": 0.39694037245129676\n },\n \"interfaceCounters\": {\n \"inOctets\": 22057547,\n \"inUcastPkts\": 114808,\n \"inMulticastPkts\": 0,\n \"inBroadcastPkts\": 0,\n \"inDiscards\": 0,\n \"inTotalPkts\": 114808,\n \"outOctets\": 10965565,\n \"outUcastPkts\": 55669,\n \"outMulticastPkts\": 0,\n \"outBroadcastPkts\": 0,\n \"outDiscards\": 0,\n \"outTotalPkts\": 55669,\n \"linkStatusChanges\": 3,\n \"totalInErrors\": 0,\n \"inputErrorsDetail\": {\n \"runtFrames\": 0,\n \"giantFrames\": 0,\n \"fcsErrors\": 0,\n \"alignmentErrors\": 0,\n \"symbolErrors\": 0,\n \"rxPause\": 0\n },\n \"totalOutErrors\": 0,\n \"outputErrorsDetail\": {\n \"collisions\": 0,\n \"lateCollisions\": 0,\n \"deferredTransmissions\": 0,\n \"txPause\": 0\n },\n \"counterRefreshTime\": 1702060464.88396\n },\n \"duplex\": \"duplexFull\",\n \"autoNegotiate\": \"success\",\n \"loopbackMode\": \"loopbackNone\",\n \"lanes\": 0\n },\n \"Loopback0\": {\n \"name\": \"Loopback0\",\n \"forwardingModel\": \"routed\",\n \"lineProtocolStatus\": \"up\",\n \"interfaceStatus\": \"connected\",\n \"hardware\": \"loopback\",\n \"interfaceAddress\": [\n {\n \"primaryIp\": {\n \"address\": \"2.2.2.2\",\n \"maskLen\": 32\n },\n \"secondaryIps\": {},\n \"secondaryIpsOrderedList\": [],\n \"virtualIp\": {\n \"address\": \"0.0.0.0\",\n \"maskLen\": 0\n },\n \"virtualSecondaryIps\": {},\n \"virtualSecondaryIpsOrderedList\": [],\n \"broadcastAddress\": \"255.255.255.255\",\n \"dhcp\": false\n }\n ],\n \"description\": \"\",\n \"bandwidth\": 0,\n \"mtu\": 65535,\n \"l3MtuConfigured\": false,\n \"l2Mru\": 0,\n \"lastStatusChangeTimestamp\": 1700446240.526441\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060465804, + "cmd_timestamp": 1702060465059, + "cmd": "show vrf| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"routeDistinguisher\": \"\",\n \"protocols\": {\n \"ipv4\": {\n \"supported\": true,\n \"protocolState\": \"up\",\n \"routingState\": \"up\",\n \"multicastState\": \"up\"\n },\n \"ipv6\": {\n \"supported\": true,\n \"protocolState\": \"up\",\n \"routingState\": \"down\"\n }\n },\n \"vrfState\": \"up\",\n \"interfacesV4\": [\n \"Ethernet1\",\n \"Ethernet2\",\n \"Loopback0\",\n \"Management0\"\n ],\n \"interfacesV6\": [\n \"Management0\"\n ],\n \"interfaces\": [\n \"Ethernet1\",\n \"Ethernet2\",\n \"Loopback0\",\n \"Management0\"\n ]\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060466715, + "cmd_timestamp": 1702060465804, + "cmd": "show ip virtual-router| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"virtualMacs\": [\n {\n \"macAddress\": \"00:00:00:00:00:00\",\n \"macType\": \"varp\",\n \"mask\": \"ff:ff:ff:ff:ff:ff\",\n \"subnetRoutes\": false\n }\n ],\n \"advertiseInterval\": 30,\n \"virtualRouters\": []\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060468509, + "cmd_timestamp": 1702060467130, + "cmd": "show interface brief | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_interface\":{\"ROW_interface\":[{\"interface\":\"mgmt0\",\"state\":\"up\",\"ip_addr\":\"10.0.0.15\",\"speed\":\"1000\",\"mtu\":1500},{\"interface\":\"Ethernet1/1\",\"vlan\":\"--\",\"type\":\"eth\",\"portmode\":\"routed\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/2\",\"vlan\":\"--\",\"type\":\"eth\",\"portmode\":\"routed\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/3\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/4\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/5\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/6\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/7\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/8\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/9\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/10\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/11\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/12\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/13\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/14\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/15\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/16\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/17\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/18\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/19\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/20\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/21\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/22\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/23\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/24\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/25\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/26\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/27\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/28\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/29\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/30\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/31\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/32\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/33\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/34\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/35\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/36\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/37\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/38\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/39\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/40\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/41\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/42\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/43\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/44\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/45\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/46\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/47\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/48\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/49\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/50\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/51\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/52\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/53\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/54\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/55\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/56\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/57\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/58\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/59\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/60\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/61\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/62\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/63\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/64\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"loopback0\",\"state\":\"up\"}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060469352, + "cmd_timestamp": 1702060468509, + "cmd": "show ip interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_intf\":{\"ROW_intf\":[{\"vrf-name-out\":\"default\",\"intf-name\":\"loopback0\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":70,\"prefix\":\"2.1.2.2\",\"subnet\":\"2.1.2.2\",\"masklen\":32,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":3,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":0,\"upkt-recv\":0,\"upkt-fwd\":0,\"upkt-orig\":0,\"upkt-consumed\":3085,\"ubyte-sent\":0,\"ubyte-recv\":0,\"ubyte-fwd\":0,\"ubyte-orig\":0,\"ubyte-consumed\":155470,\"mpkt-sent\":0,\"mpkt-recv\":0,\"mpkt-fwd\":0,\"mpkt-orig\":0,\"mpkt-consumed\":0,\"mbyte-sent\":0,\"mbyte-recv\":0,\"mbyte-fwd\":0,\"mbyte-orig\":0,\"mbyte-consumed\":0,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"default\",\"intf-name\":\"Ethernet1/1\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":5,\"prefix\":\"10.1.1.1\",\"subnet\":\"10.1.1.0\",\"masklen\":30,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.6\",\"224.0.0.5\",\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":5,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":15,\"upkt-recv\":11,\"upkt-fwd\":5,\"upkt-orig\":10,\"upkt-consumed\":14,\"ubyte-sent\":1422,\"ubyte-recv\":860,\"ubyte-fwd\":510,\"ubyte-orig\":912,\"ubyte-consumed\":1048,\"mpkt-sent\":16719404,\"mpkt-recv\":273051,\"mpkt-fwd\":0,\"mpkt-orig\":16719404,\"mpkt-consumed\":546088,\"mbyte-sent\":24974516086,\"mbyte-recv\":17247582,\"mbyte-fwd\":0,\"mbyte-orig\":24974516086,\"mbyte-consumed\":17247386,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"default\",\"intf-name\":\"Ethernet1/2\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":6,\"prefix\":\"10.1.2.1\",\"subnet\":\"10.1.2.0\",\"masklen\":30,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.6\",\"224.0.0.5\",\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":5,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":3096,\"upkt-recv\":3101,\"upkt-fwd\":4,\"upkt-orig\":3092,\"upkt-consumed\":3092,\"ubyte-sent\":173794,\"ubyte-recv\":156438,\"ubyte-fwd\":408,\"ubyte-orig\":173386,\"ubyte-consumed\":148736,\"mpkt-sent\":262319,\"mpkt-recv\":16706136,\"mpkt-fwd\":0,\"mpkt-orig\":262319,\"mpkt-consumed\":16952117,\"mbyte-sent\":21125522,\"mbyte-recv\":24673083686,\"mbyte-fwd\":0,\"mbyte-orig\":21125522,\"mbyte-consumed\":24673083672,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"management\",\"intf-name\":\"mgmt0\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":2,\"prefix\":\"10.0.0.15\",\"subnet\":\"10.0.0.0\",\"masklen\":24,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"num-maddr\":0,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"disabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":2201,\"upkt-recv\":2705,\"upkt-fwd\":0,\"upkt-orig\":2201,\"upkt-consumed\":5410,\"ubyte-sent\":346068,\"ubyte-recv\":247031,\"ubyte-fwd\":0,\"ubyte-orig\":346068,\"ubyte-consumed\":483452,\"mpkt-sent\":0,\"mpkt-recv\":0,\"mpkt-fwd\":0,\"mpkt-orig\":0,\"mpkt-consumed\":0,\"mbyte-sent\":0,\"mbyte-recv\":0,\"mbyte-fwd\":0,\"mbyte-orig\":0,\"mbyte-consumed\":0,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060470343, + "cmd_timestamp": 1702060469352, + "cmd": "show ipv6 interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{}\n" + }, + { + "status": 0, + "timestamp": 1702060473575, + "cmd_timestamp": 1702060470343, + "cmd": "show interface | egrep '^\\w|Hardware|MTU|reset|Description|flapped'", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "mgmt0 is up\nadmin state is up,\n Hardware: Ethernet, address: 0c00.3c9a.ff00 (bia 0c00.3c9a.ff00)\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\nEthernet1/1 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.1b08 (bia 0c9a.ff00.0101)\n Description: \"Connection to nxos-1\"\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 2 interface resets\nEthernet1/2 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.1b08 (bia 0c9a.ff00.0102)\n Description: \"Connection to nxos-3\"\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 1 interface resets\nEthernet1/3 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0103 (bia 0c9a.ff00.0103)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/4 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0104 (bia 0c9a.ff00.0104)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/5 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0105 (bia 0c9a.ff00.0105)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/6 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0106 (bia 0c9a.ff00.0106)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/7 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0107 (bia 0c9a.ff00.0107)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/8 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0108 (bia 0c9a.ff00.0108)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/9 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0109 (bia 0c9a.ff00.0109)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/10 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.010a (bia 0c9a.ff00.010a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/11 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.010b (bia 0c9a.ff00.010b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/12 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.010c (bia 0c9a.ff00.010c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/13 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.010d (bia 0c9a.ff00.010d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/14 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.010e (bia 0c9a.ff00.010e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/15 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.010f (bia 0c9a.ff00.010f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/16 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0110 (bia 0c9a.ff00.0110)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/17 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0111 (bia 0c9a.ff00.0111)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/18 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0112 (bia 0c9a.ff00.0112)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/19 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0113 (bia 0c9a.ff00.0113)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/20 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0114 (bia 0c9a.ff00.0114)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/21 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0115 (bia 0c9a.ff00.0115)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/22 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0116 (bia 0c9a.ff00.0116)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/23 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0117 (bia 0c9a.ff00.0117)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/24 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0118 (bia 0c9a.ff00.0118)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/25 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0119 (bia 0c9a.ff00.0119)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/26 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.011a (bia 0c9a.ff00.011a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/27 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.011b (bia 0c9a.ff00.011b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/28 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.011c (bia 0c9a.ff00.011c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/29 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.011d (bia 0c9a.ff00.011d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/30 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.011e (bia 0c9a.ff00.011e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/31 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.011f (bia 0c9a.ff00.011f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/32 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0120 (bia 0c9a.ff00.0120)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/33 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0121 (bia 0c9a.ff00.0121)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/34 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0122 (bia 0c9a.ff00.0122)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/35 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0123 (bia 0c9a.ff00.0123)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/36 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0124 (bia 0c9a.ff00.0124)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/37 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0125 (bia 0c9a.ff00.0125)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/38 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0126 (bia 0c9a.ff00.0126)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/39 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0127 (bia 0c9a.ff00.0127)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/40 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0128 (bia 0c9a.ff00.0128)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/41 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0129 (bia 0c9a.ff00.0129)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/42 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.012a (bia 0c9a.ff00.012a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/43 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.012b (bia 0c9a.ff00.012b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/44 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.012c (bia 0c9a.ff00.012c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/45 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.012d (bia 0c9a.ff00.012d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/46 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.012e (bia 0c9a.ff00.012e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/47 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.012f (bia 0c9a.ff00.012f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/48 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0130 (bia 0c9a.ff00.0130)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/49 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0131 (bia 0c9a.ff00.0131)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/50 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0132 (bia 0c9a.ff00.0132)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/51 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0133 (bia 0c9a.ff00.0133)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/52 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0134 (bia 0c9a.ff00.0134)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/53 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0135 (bia 0c9a.ff00.0135)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/54 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0136 (bia 0c9a.ff00.0136)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/55 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0137 (bia 0c9a.ff00.0137)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/56 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0138 (bia 0c9a.ff00.0138)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/57 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0139 (bia 0c9a.ff00.0139)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/58 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.013a (bia 0c9a.ff00.013a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/59 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.013b (bia 0c9a.ff00.013b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/60 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.013c (bia 0c9a.ff00.013c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/61 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.013d (bia 0c9a.ff00.013d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/62 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.013e (bia 0c9a.ff00.013e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/63 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.013f (bia 0c9a.ff00.013f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/64 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c9a.ff00.0140 (bia 0c9a.ff00.0140)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nloopback0 is up\nadmin state is up,\n Hardware: Loopback\n MTU 1500 bytes, BW 8000000 Kbit , DLY 5000 usec\n" + }, + { + "status": 16, + "timestamp": 1702060474694, + "cmd_timestamp": 1702060473575, + "cmd": "show fabric forwarding internal svi-info", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "Syntax error while parsing 'show fabric forwarding internal svi-info'\n\n\nCmd exec error.\n" + }, + { + "status": 0, + "timestamp": 1702060475353, + "cmd_timestamp": 1702060474694, + "cmd": "show vrf detail | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf_name\":\"default\",\"vrf_id\":1,\"vrf_state\":\"Up\",\"vpnid\":\"unknown\",\"rd\":\"0:0\",\"max_routes\":0,\"mid_threshold\":0,\"TABLE_tib\":{\"ROW_tib\":[{\"tib_id\":80000001,\"tib_af\":\"IPv6\",\"tib_nonce\":80000001,\"tib_state\":\"Up\"},{\"tib_id\":1,\"tib_af\":\"IPv4\",\"tib_nonce\":1,\"tib_state\":\"Up\"}]}},{\"vrf_name\":\"management\",\"vrf_id\":2,\"vrf_state\":\"Up\",\"vpnid\":\"unknown\",\"rd\":\"0:0\",\"max_routes\":0,\"mid_threshold\":0,\"TABLE_tib\":{\"ROW_tib\":[{\"tib_id\":80000002,\"tib_af\":\"IPv6\",\"tib_nonce\":80000002,\"tib_state\":\"Up\"},{\"tib_id\":2,\"tib_af\":\"IPv4\",\"tib_nonce\":2,\"tib_state\":\"Up\"}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060469918, + "cmd_timestamp": 1702060467130, + "cmd": "show interface brief | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_interface\":{\"ROW_interface\":[{\"interface\":\"mgmt0\",\"state\":\"up\",\"ip_addr\":\"10.0.0.15\",\"speed\":\"unknown enum:<65535>\",\"mtu\":1500},{\"interface\":\"Ethernet1/1\",\"vlan\":\"--\",\"type\":\"eth\",\"portmode\":\"routed\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/2\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/3\",\"vlan\":\"10\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/4\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/5\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/6\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/7\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/8\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/9\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/10\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/11\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/12\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/13\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/14\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/15\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/16\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/17\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/18\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/19\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/20\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/21\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/22\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/23\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/24\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/25\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/26\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/27\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/28\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/29\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/30\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/31\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/32\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/33\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/34\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/35\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/36\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/37\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/38\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/39\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/40\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/41\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/42\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/43\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/44\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/45\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/46\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/47\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/48\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/49\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/50\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/51\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/52\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/53\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/54\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/55\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/56\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/57\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/58\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/59\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/60\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/61\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/62\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/63\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/64\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"loopback0\",\"state\":\"up\"},{\"interface\":\"Vlan1\",\"svi_admin_state\":\"down\",\"svi_rsn_desc\":\"Administratively down\"},{\"interface\":\"Vlan10\",\"svi_admin_state\":\"up\"}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060471243, + "cmd_timestamp": 1702060469918, + "cmd": "show ip interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_intf\":{\"ROW_intf\":[{\"vrf-name-out\":\"default\",\"intf-name\":\"Vlan10\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":72,\"prefix\":\"10.1.13.1\",\"subnet\":\"10.1.13.0\",\"masklen\":24,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.6\",\"224.0.0.5\",\"224.0.0.22\",\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":6,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":4,\"upkt-recv\":7,\"upkt-fwd\":4,\"upkt-orig\":0,\"upkt-consumed\":3085,\"ubyte-sent\":408,\"ubyte-recv\":524,\"ubyte-fwd\":408,\"ubyte-orig\":0,\"ubyte-consumed\":117230,\"mpkt-sent\":243286,\"mpkt-recv\":16460328,\"mpkt-fwd\":0,\"mpkt-orig\":243286,\"mpkt-consumed\":16460328,\"mbyte-sent\":19149310,\"mbyte-recv\":24657571344,\"mbyte-fwd\":0,\"mbyte-orig\":19149310,\"mbyte-consumed\":24657571344,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"default\",\"intf-name\":\"loopback0\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":71,\"prefix\":\"3.1.3.3\",\"subnet\":\"3.1.3.3\",\"masklen\":32,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":3,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":0,\"upkt-recv\":0,\"upkt-fwd\":0,\"upkt-orig\":0,\"upkt-consumed\":0,\"ubyte-sent\":0,\"ubyte-recv\":0,\"ubyte-fwd\":0,\"ubyte-orig\":0,\"ubyte-consumed\":0,\"mpkt-sent\":0,\"mpkt-recv\":0,\"mpkt-fwd\":0,\"mpkt-orig\":0,\"mpkt-consumed\":0,\"mbyte-sent\":0,\"mbyte-recv\":0,\"mbyte-fwd\":0,\"mbyte-orig\":0,\"mbyte-consumed\":0,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"default\",\"intf-name\":\"Ethernet1/1\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":5,\"prefix\":\"10.1.2.2\",\"subnet\":\"10.1.2.0\",\"masklen\":30,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.6\",\"224.0.0.5\",\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":5,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":3101,\"upkt-recv\":3096,\"upkt-fwd\":5,\"upkt-orig\":3096,\"upkt-consumed\":3099,\"ubyte-sent\":212256,\"ubyte-recv\":142746,\"ubyte-fwd\":510,\"ubyte-orig\":211746,\"ubyte-consumed\":142910,\"mpkt-sent\":16706306,\"mpkt-recv\":262315,\"mpkt-fwd\":0,\"mpkt-orig\":16706306,\"mpkt-consumed\":511401,\"mbyte-sent\":24974051840,\"mbyte-recv\":16588790,\"mbyte-fwd\":0,\"mbyte-orig\":24974051840,\"mbyte-consumed\":16403584,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"management\",\"intf-name\":\"mgmt0\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":2,\"prefix\":\"10.0.0.15\",\"subnet\":\"10.0.0.0\",\"masklen\":24,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"num-maddr\":0,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"disabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":2192,\"upkt-recv\":2718,\"upkt-fwd\":0,\"upkt-orig\":2192,\"upkt-consumed\":5436,\"ubyte-sent\":348430,\"ubyte-recv\":247881,\"ubyte-fwd\":0,\"ubyte-orig\":348430,\"ubyte-consumed\":485110,\"mpkt-sent\":0,\"mpkt-recv\":0,\"mpkt-fwd\":0,\"mpkt-orig\":0,\"mpkt-consumed\":0,\"mbyte-sent\":0,\"mbyte-recv\":0,\"mbyte-fwd\":0,\"mbyte-orig\":0,\"mbyte-consumed\":0,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060472427, + "cmd_timestamp": 1702060471243, + "cmd": "show ipv6 interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{}\n" + }, + { + "status": 0, + "timestamp": 1702060475261, + "cmd_timestamp": 1702060472427, + "cmd": "show interface | egrep '^\\w|Hardware|MTU|reset|Description|flapped'", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "mgmt0 is up\nadmin state is up,\n Hardware: Ethernet, address: 0c00.4643.9c00 (bia 0c00.4643.9c00)\n MTU 1500 bytes, BW 65535000 Kbit , DLY 10 usec\nEthernet1/1 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.1b08 (bia 0c43.9c00.0101)\n Description: \"Connection to nxos-3\"\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 2 interface resets\nEthernet1/2 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0102 (bia 0c43.9c00.0102)\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 1 interface resets\nEthernet1/3 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0103 (bia 0c43.9c00.0103)\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 2 interface resets\nEthernet1/4 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0104 (bia 0c43.9c00.0104)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/5 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0105 (bia 0c43.9c00.0105)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/6 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0106 (bia 0c43.9c00.0106)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/7 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0107 (bia 0c43.9c00.0107)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/8 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0108 (bia 0c43.9c00.0108)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/9 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0109 (bia 0c43.9c00.0109)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/10 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.010a (bia 0c43.9c00.010a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/11 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.010b (bia 0c43.9c00.010b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/12 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.010c (bia 0c43.9c00.010c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/13 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.010d (bia 0c43.9c00.010d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/14 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.010e (bia 0c43.9c00.010e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/15 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.010f (bia 0c43.9c00.010f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/16 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0110 (bia 0c43.9c00.0110)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/17 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0111 (bia 0c43.9c00.0111)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/18 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0112 (bia 0c43.9c00.0112)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/19 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0113 (bia 0c43.9c00.0113)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/20 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0114 (bia 0c43.9c00.0114)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/21 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0115 (bia 0c43.9c00.0115)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/22 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0116 (bia 0c43.9c00.0116)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/23 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0117 (bia 0c43.9c00.0117)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/24 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0118 (bia 0c43.9c00.0118)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/25 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0119 (bia 0c43.9c00.0119)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/26 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.011a (bia 0c43.9c00.011a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/27 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.011b (bia 0c43.9c00.011b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/28 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.011c (bia 0c43.9c00.011c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/29 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.011d (bia 0c43.9c00.011d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/30 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.011e (bia 0c43.9c00.011e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/31 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.011f (bia 0c43.9c00.011f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/32 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0120 (bia 0c43.9c00.0120)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/33 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0121 (bia 0c43.9c00.0121)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/34 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0122 (bia 0c43.9c00.0122)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/35 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0123 (bia 0c43.9c00.0123)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/36 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0124 (bia 0c43.9c00.0124)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/37 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0125 (bia 0c43.9c00.0125)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/38 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0126 (bia 0c43.9c00.0126)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/39 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0127 (bia 0c43.9c00.0127)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/40 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0128 (bia 0c43.9c00.0128)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/41 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0129 (bia 0c43.9c00.0129)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/42 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.012a (bia 0c43.9c00.012a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/43 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.012b (bia 0c43.9c00.012b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/44 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.012c (bia 0c43.9c00.012c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/45 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.012d (bia 0c43.9c00.012d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/46 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.012e (bia 0c43.9c00.012e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/47 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.012f (bia 0c43.9c00.012f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/48 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0130 (bia 0c43.9c00.0130)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/49 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0131 (bia 0c43.9c00.0131)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/50 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0132 (bia 0c43.9c00.0132)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/51 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0133 (bia 0c43.9c00.0133)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/52 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0134 (bia 0c43.9c00.0134)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/53 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0135 (bia 0c43.9c00.0135)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/54 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0136 (bia 0c43.9c00.0136)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/55 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0137 (bia 0c43.9c00.0137)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/56 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0138 (bia 0c43.9c00.0138)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/57 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0139 (bia 0c43.9c00.0139)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/58 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.013a (bia 0c43.9c00.013a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/59 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.013b (bia 0c43.9c00.013b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/60 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.013c (bia 0c43.9c00.013c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/61 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.013d (bia 0c43.9c00.013d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/62 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.013e (bia 0c43.9c00.013e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/63 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.013f (bia 0c43.9c00.013f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/64 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0c43.9c00.0140 (bia 0c43.9c00.0140)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nloopback0 is up\nadmin state is up,\n Hardware: Loopback\n MTU 1500 bytes, BW 8000000 Kbit , DLY 5000 usec\nVlan1 is down (Administratively down), line protocol is down, autostate enabled\n Hardware is EtherSVI, address is 0c43.9c00.1b08\n MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,\r\nVlan10 is up, line protocol is up, autostate enabled\n Hardware is EtherSVI, address is 0c43.9c00.1b08\n MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,\r\n" + }, + { + "status": 16, + "timestamp": 1702060476294, + "cmd_timestamp": 1702060475261, + "cmd": "show fabric forwarding internal svi-info", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "Syntax error while parsing 'show fabric forwarding internal svi-info'\n\n\nCmd exec error.\n" + }, + { + "status": 0, + "timestamp": 1702060476709, + "cmd_timestamp": 1702060476294, + "cmd": "show vrf detail | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf_name\":\"default\",\"vrf_id\":1,\"vrf_state\":\"Up\",\"vpnid\":\"unknown\",\"rd\":\"0:0\",\"max_routes\":0,\"mid_threshold\":0,\"TABLE_tib\":{\"ROW_tib\":[{\"tib_id\":80000001,\"tib_af\":\"IPv6\",\"tib_nonce\":80000001,\"tib_state\":\"Up\"},{\"tib_id\":1,\"tib_af\":\"IPv4\",\"tib_nonce\":1,\"tib_state\":\"Up\"}]}},{\"vrf_name\":\"management\",\"vrf_id\":2,\"vrf_state\":\"Up\",\"vpnid\":\"unknown\",\"rd\":\"0:0\",\"max_routes\":0,\"mid_threshold\":0,\"TABLE_tib\":{\"ROW_tib\":[{\"tib_id\":80000002,\"tib_af\":\"IPv6\",\"tib_nonce\":80000002,\"tib_state\":\"Up\"},{\"tib_id\":2,\"tib_af\":\"IPv4\",\"tib_nonce\":2,\"tib_state\":\"Up\"}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060470488, + "cmd_timestamp": 1702060467623, + "cmd": "show interface brief | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_interface\":{\"ROW_interface\":[{\"interface\":\"mgmt0\",\"state\":\"up\",\"ip_addr\":\"10.0.0.15\",\"speed\":\"1000\",\"mtu\":1500},{\"interface\":\"Ethernet1/1\",\"vlan\":\"--\",\"type\":\"eth\",\"portmode\":\"routed\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/2\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/3\",\"vlan\":\"--\",\"type\":\"eth\",\"portmode\":\"routed\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/4\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"up\",\"state_rsn_desc\":\"none\",\"speed\":\"1000\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/5\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/6\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/7\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/8\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/9\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/10\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/11\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/12\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/13\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/14\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/15\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/16\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/17\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/18\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/19\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/20\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/21\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/22\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/23\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/24\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/25\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/26\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/27\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/28\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/29\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/30\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/31\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/32\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/33\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/34\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/35\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/36\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/37\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/38\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/39\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/40\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/41\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/42\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/43\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/44\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/45\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/46\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/47\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/48\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/49\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/50\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/51\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/52\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/53\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/54\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/55\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/56\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/57\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/58\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/59\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/60\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/61\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/62\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/63\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"Ethernet1/64\",\"vlan\":\"1\",\"type\":\"eth\",\"portmode\":\"access\",\"state\":\"down\",\"state_rsn_desc\":\"Link not connected\",\"speed\":\"auto\",\"ratemode\":\"D\"},{\"interface\":\"loopback0\",\"state\":\"up\"},{\"interface\":\"Vlan1\",\"svi_admin_state\":\"down\",\"svi_rsn_desc\":\"Administratively down\"}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060471391, + "cmd_timestamp": 1702060470488, + "cmd": "show ip interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_intf\":{\"ROW_intf\":[{\"vrf-name-out\":\"default\",\"intf-name\":\"loopback0\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":71,\"prefix\":\"1.1.1.1\",\"subnet\":\"1.1.1.1\",\"masklen\":32,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":3,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":0,\"upkt-recv\":0,\"upkt-fwd\":0,\"upkt-orig\":0,\"upkt-consumed\":0,\"ubyte-sent\":0,\"ubyte-recv\":0,\"ubyte-fwd\":0,\"ubyte-orig\":0,\"ubyte-consumed\":0,\"mpkt-sent\":0,\"mpkt-recv\":0,\"mpkt-fwd\":0,\"mpkt-orig\":0,\"mpkt-consumed\":0,\"mbyte-sent\":0,\"mbyte-recv\":0,\"mbyte-fwd\":0,\"mbyte-orig\":0,\"mbyte-consumed\":0,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"default\",\"intf-name\":\"Ethernet1/1\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":5,\"prefix\":\"10.1.1.2\",\"subnet\":\"10.1.1.0\",\"masklen\":30,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.6\",\"224.0.0.5\",\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":5,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":11,\"upkt-recv\":15,\"upkt-fwd\":4,\"upkt-orig\":7,\"upkt-consumed\":20,\"ubyte-sent\":1058,\"ubyte-recv\":1152,\"ubyte-fwd\":408,\"ubyte-orig\":650,\"ubyte-consumed\":1464,\"mpkt-sent\":273041,\"mpkt-recv\":16719568,\"mpkt-fwd\":0,\"mpkt-orig\":273041,\"mpkt-consumed\":16965568,\"mbyte-sent\":22161854,\"mbyte-recv\":24674016582,\"mbyte-fwd\":0,\"mbyte-orig\":22161854,\"mbyte-consumed\":24673831298,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"default\",\"intf-name\":\"Ethernet1/3\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":7,\"prefix\":\"10.1.11.1\",\"subnet\":\"10.1.11.0\",\"masklen\":24,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"maddr\":[\"224.0.0.6\",\"224.0.0.5\",\"224.0.0.2\",\"224.0.0.1\",\"224.0.0.13\"],\"num-maddr\":5,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"enabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":4,\"upkt-recv\":4,\"upkt-fwd\":4,\"upkt-orig\":0,\"upkt-consumed\":0,\"ubyte-sent\":408,\"ubyte-recv\":336,\"ubyte-fwd\":408,\"ubyte-orig\":0,\"ubyte-consumed\":0,\"mpkt-sent\":16716797,\"mpkt-recv\":13230,\"mpkt-fwd\":0,\"mpkt-orig\":16716797,\"mpkt-consumed\":13230,\"mbyte-sent\":24973675672,\"mbyte-recv\":608580,\"mbyte-fwd\":0,\"mbyte-orig\":24973675672,\"mbyte-consumed\":423360,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0},{\"vrf-name-out\":\"management\",\"intf-name\":\"mgmt0\",\"proto-state\":\"up\",\"link-state\":\"up\",\"admin-state\":\"up\",\"iod\":2,\"prefix\":\"10.0.0.15\",\"subnet\":\"10.0.0.0\",\"masklen\":24,\"num-addr\":1,\"ip-disabled\":\"FALSE\",\"bcast-addr\":\"255.255.255.255\",\"num-maddr\":0,\"mtu\":1500,\"pref\":0,\"tag\":0,\"proxy-arp\":\"disabled\",\"lcl-proxy-arp\":\"disabled\",\"mrouting\":\"disabled\",\"icmp-redirect\":\"enabled\",\"dir-bcast\":\"disabled\",\"ip-forwarding\":\"disabled\",\"ip-unreach\":\"disabled\",\"port-unreach\":\"enabled\",\"urpf-mode\":\"none\",\"ip-ls-type\":\"none\",\"stats-last-reset\":\"never\",\"upkt-sent\":2238,\"upkt-recv\":2774,\"upkt-fwd\":0,\"upkt-orig\":2238,\"upkt-consumed\":5548,\"ubyte-sent\":355820,\"ubyte-recv\":253470,\"ubyte-fwd\":0,\"ubyte-orig\":355820,\"ubyte-consumed\":496100,\"mpkt-sent\":0,\"mpkt-recv\":0,\"mpkt-fwd\":0,\"mpkt-orig\":0,\"mpkt-consumed\":0,\"mbyte-sent\":0,\"mbyte-recv\":0,\"mbyte-fwd\":0,\"mbyte-orig\":0,\"mbyte-consumed\":0,\"bpkt-sent\":0,\"bpkt-recv\":0,\"bpkt-fwd\":0,\"bpkt-orig\":0,\"bpkt-consumed\":0,\"bbyte-sent\":0,\"bbyte-recv\":0,\"bbyte-fwd\":0,\"bbyte-orig\":0,\"bbyte-consumed\":0,\"lpkt-sent\":0,\"lpkt-recv\":0,\"lpkt-fwd\":0,\"lpkt-orig\":0,\"lpkt-consumed\":0,\"lbyte-sent\":0,\"lbyte-recv\":0,\"lbyte-fwd\":0,\"lbyte-orig\":0,\"lbyte-consumed\":0}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060472581, + "cmd_timestamp": 1702060471391, + "cmd": "show ipv6 interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{}\n" + }, + { + "status": 0, + "timestamp": 1702060475214, + "cmd_timestamp": 1702060472581, + "cmd": "show interface | egrep '^\\w|Hardware|MTU|reset|Description|flapped'", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "mgmt0 is up\nadmin state is up,\n Hardware: Ethernet, address: 0c00.d6f6.8b00 (bia 0c00.d6f6.8b00)\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\nEthernet1/1 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.1b08 (bia 0cf6.8b00.0101)\n Description: \"Connection to nxos-2\"\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 2 interface resets\nEthernet1/2 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0102 (bia 0cf6.8b00.0102)\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 1 interface resets\nEthernet1/3 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.1b08 (bia 0cf6.8b00.0103)\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 2 interface resets\nEthernet1/4 is up\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0104 (bia 0cf6.8b00.0104)\n MTU 1500 bytes, BW 1000000 Kbit , DLY 10 usec\n Last link flapped 2week(s) 4day(s)\n 1 interface resets\nEthernet1/5 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0105 (bia 0cf6.8b00.0105)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/6 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0106 (bia 0cf6.8b00.0106)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/7 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0107 (bia 0cf6.8b00.0107)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/8 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0108 (bia 0cf6.8b00.0108)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/9 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0109 (bia 0cf6.8b00.0109)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/10 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.010a (bia 0cf6.8b00.010a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/11 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.010b (bia 0cf6.8b00.010b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/12 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.010c (bia 0cf6.8b00.010c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/13 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.010d (bia 0cf6.8b00.010d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/14 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.010e (bia 0cf6.8b00.010e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/15 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.010f (bia 0cf6.8b00.010f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/16 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0110 (bia 0cf6.8b00.0110)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/17 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0111 (bia 0cf6.8b00.0111)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/18 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0112 (bia 0cf6.8b00.0112)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/19 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0113 (bia 0cf6.8b00.0113)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/20 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0114 (bia 0cf6.8b00.0114)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/21 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0115 (bia 0cf6.8b00.0115)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/22 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0116 (bia 0cf6.8b00.0116)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/23 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0117 (bia 0cf6.8b00.0117)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/24 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0118 (bia 0cf6.8b00.0118)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/25 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0119 (bia 0cf6.8b00.0119)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/26 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.011a (bia 0cf6.8b00.011a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/27 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.011b (bia 0cf6.8b00.011b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/28 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.011c (bia 0cf6.8b00.011c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/29 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.011d (bia 0cf6.8b00.011d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/30 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.011e (bia 0cf6.8b00.011e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/31 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.011f (bia 0cf6.8b00.011f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/32 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0120 (bia 0cf6.8b00.0120)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/33 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0121 (bia 0cf6.8b00.0121)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/34 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0122 (bia 0cf6.8b00.0122)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/35 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0123 (bia 0cf6.8b00.0123)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/36 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0124 (bia 0cf6.8b00.0124)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/37 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0125 (bia 0cf6.8b00.0125)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/38 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0126 (bia 0cf6.8b00.0126)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/39 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0127 (bia 0cf6.8b00.0127)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/40 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0128 (bia 0cf6.8b00.0128)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/41 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0129 (bia 0cf6.8b00.0129)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/42 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.012a (bia 0cf6.8b00.012a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/43 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.012b (bia 0cf6.8b00.012b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/44 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.012c (bia 0cf6.8b00.012c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/45 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.012d (bia 0cf6.8b00.012d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/46 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.012e (bia 0cf6.8b00.012e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/47 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.012f (bia 0cf6.8b00.012f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/48 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0130 (bia 0cf6.8b00.0130)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/49 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0131 (bia 0cf6.8b00.0131)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/50 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0132 (bia 0cf6.8b00.0132)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/51 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0133 (bia 0cf6.8b00.0133)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/52 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0134 (bia 0cf6.8b00.0134)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/53 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0135 (bia 0cf6.8b00.0135)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/54 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0136 (bia 0cf6.8b00.0136)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/55 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0137 (bia 0cf6.8b00.0137)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/56 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0138 (bia 0cf6.8b00.0138)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/57 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0139 (bia 0cf6.8b00.0139)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/58 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.013a (bia 0cf6.8b00.013a)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/59 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.013b (bia 0cf6.8b00.013b)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/60 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.013c (bia 0cf6.8b00.013c)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/61 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.013d (bia 0cf6.8b00.013d)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/62 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.013e (bia 0cf6.8b00.013e)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/63 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.013f (bia 0cf6.8b00.013f)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nEthernet1/64 is down (Link not connected)\nadmin state is up, Dedicated Interface\n Hardware: 100/1000/10000 Ethernet, address: 0cf6.8b00.0140 (bia 0cf6.8b00.0140)\n MTU 1500 bytes, BW 10000000 Kbit , DLY 10 usec\n Last link flapped never\n 0 interface resets\nloopback0 is up\nadmin state is up,\n Hardware: Loopback\n MTU 1500 bytes, BW 8000000 Kbit , DLY 5000 usec\nVlan1 is down (Administratively down), line protocol is down, autostate enabled\n Hardware is EtherSVI, address is 0cf6.8b00.1b08\n MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,\r\n" + }, + { + "status": 16, + "timestamp": 1702060476245, + "cmd_timestamp": 1702060475214, + "cmd": "show fabric forwarding internal svi-info", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "Syntax error while parsing 'show fabric forwarding internal svi-info'\n\n\nCmd exec error.\n" + }, + { + "status": 0, + "timestamp": 1702060476938, + "cmd_timestamp": 1702060476245, + "cmd": "show vrf detail | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf_name\":\"default\",\"vrf_id\":1,\"vrf_state\":\"Up\",\"vpnid\":\"unknown\",\"rd\":\"0:0\",\"max_routes\":0,\"mid_threshold\":0,\"TABLE_tib\":{\"ROW_tib\":[{\"tib_id\":80000001,\"tib_af\":\"IPv6\",\"tib_nonce\":80000001,\"tib_state\":\"Up\"},{\"tib_id\":1,\"tib_af\":\"IPv4\",\"tib_nonce\":1,\"tib_state\":\"Up\"}]}},{\"vrf_name\":\"management\",\"vrf_id\":2,\"vrf_state\":\"Up\",\"vpnid\":\"unknown\",\"rd\":\"0:0\",\"max_routes\":0,\"mid_threshold\":0,\"TABLE_tib\":{\"ROW_tib\":[{\"tib_id\":80000002,\"tib_af\":\"IPv6\",\"tib_nonce\":80000002,\"tib_state\":\"Up\"},{\"tib_id\":2,\"tib_af\":\"IPv4\",\"tib_nonce\":2,\"tib_state\":\"Up\"}]}}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/inventory.output b/tests/integration/sqcmds/multicast-input/inventory.output new file mode 100644 index 0000000000..113815bd36 --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/inventory.output @@ -0,0 +1,115 @@ +[ + { + "status": 0, + "timestamp": 1702060466383, + "cmd_timestamp": 1702060465860, + "cmd": "show inventory| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"systemInformation\": {\n \"name\": \"cEOSLab\",\n \"description\": \"cEOSLab\",\n \"hardwareRev\": \"\",\n \"serialNum\": \"87B87D8038E5112ADE1EA3004CF9B516\",\n \"mfgDate\": \"\",\n \"hwEpoch\": \"\"\n },\n \"powerSupplySlots\": {},\n \"fanTraySlots\": {},\n \"portCount\": 3,\n \"internalPortCount\": 0,\n \"cpuPortCount\": 0,\n \"dataLinkPortCount\": 0,\n \"switchedPortCount\": 0,\n \"switchManagementPortCount\": 0,\n \"switchedBootstrapPortCount\": 2,\n \"unconnectedPortCount\": 0,\n \"switchedFortyGOnlyPortCount\": 0,\n \"managementPortCount\": 1,\n \"xcvrSlots\": {},\n \"mgmtXcvrSlots\": {},\n \"auxiliaryXcvrSlots\": {},\n \"cardSlots\": {},\n \"storageSerials\": {},\n \"subcompSerNums\": {},\n \"fpgas\": {}\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060466483, + "cmd_timestamp": 1702060465588, + "cmd": "show inventory| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"systemInformation\": {\n \"name\": \"cEOSLab\",\n \"description\": \"cEOSLab\",\n \"hardwareRev\": \"\",\n \"serialNum\": \"54B12A226C2A8B12AC3210AD67F90CF4\",\n \"mfgDate\": \"\",\n \"hwEpoch\": \"\"\n },\n \"powerSupplySlots\": {},\n \"fanTraySlots\": {},\n \"portCount\": 3,\n \"internalPortCount\": 0,\n \"cpuPortCount\": 0,\n \"dataLinkPortCount\": 0,\n \"switchedPortCount\": 0,\n \"switchManagementPortCount\": 0,\n \"switchedBootstrapPortCount\": 2,\n \"unconnectedPortCount\": 0,\n \"switchedFortyGOnlyPortCount\": 0,\n \"managementPortCount\": 1,\n \"xcvrSlots\": {},\n \"mgmtXcvrSlots\": {},\n \"auxiliaryXcvrSlots\": {},\n \"cardSlots\": {},\n \"storageSerials\": {},\n \"subcompSerNums\": {},\n \"fpgas\": {}\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060466536, + "cmd_timestamp": 1702060465734, + "cmd": "show inventory| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"systemInformation\": {\n \"name\": \"cEOSLab\",\n \"description\": \"cEOSLab\",\n \"hardwareRev\": \"\",\n \"serialNum\": \"B9C528CB2C91104A888BD2F63152E958\",\n \"mfgDate\": \"\",\n \"hwEpoch\": \"\"\n },\n \"powerSupplySlots\": {},\n \"fanTraySlots\": {},\n \"portCount\": 3,\n \"internalPortCount\": 0,\n \"cpuPortCount\": 0,\n \"dataLinkPortCount\": 0,\n \"switchedPortCount\": 0,\n \"switchManagementPortCount\": 0,\n \"switchedBootstrapPortCount\": 2,\n \"unconnectedPortCount\": 0,\n \"switchedFortyGOnlyPortCount\": 0,\n \"managementPortCount\": 1,\n \"xcvrSlots\": {},\n \"mgmtXcvrSlots\": {},\n \"auxiliaryXcvrSlots\": {},\n \"cardSlots\": {},\n \"storageSerials\": {},\n \"subcompSerNums\": {},\n \"fpgas\": {}\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060471155, + "cmd_timestamp": 1702060470011, + "cmd": "show inventory | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_inv\":{\"ROW_inv\":[{\"name\":\"\\\"Chassis\\\"\",\"desc\":\"\\\"Nexus9000 C9300v Chassis\\\"\",\"productid\":\"N9K-C9300v\",\"vendorid\":\"\",\"serialnum\":\"9VJFFOI3SRJ\"},{\"name\":\"\\\"Slot 1\\\"\",\"desc\":\"\\\"Nexus 9000v 64 port Ethernet Module\\\"\",\"productid\":\"N9K-X9364v\",\"vendorid\":\"\",\"serialnum\":\"9RCK29FG98O\"},{\"name\":\"\\\"Slot 27\\\"\",\"desc\":\"\\\"Supervisor Module\\\"\",\"productid\":\"N9K-vSUP\",\"vendorid\":\"\",\"serialnum\":\"9B7VAUMC964\"}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060473485, + "cmd_timestamp": 1702060471155, + "cmd": "show interface transceiver | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_interface\":{\"ROW_interface\":[{\"interface\":\"Ethernet1/1\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/2\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/3\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/4\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/5\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/6\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/7\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/8\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/9\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/10\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/11\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/12\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/13\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/14\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/15\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/16\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/17\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/18\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/19\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/20\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/21\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/22\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/23\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/24\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/25\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/26\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/27\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/28\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/29\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/30\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/31\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/32\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/33\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/34\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/35\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/36\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/37\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/38\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/39\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/40\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/41\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/42\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/43\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/44\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/45\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/46\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/47\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/48\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/49\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/50\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/51\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/52\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/53\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/54\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/55\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/56\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/57\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/58\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/59\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/60\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/61\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/62\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/63\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/64\",\"sfp\":\"not applicable\"}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060473663, + "cmd_timestamp": 1702060472510, + "cmd": "show inventory | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_inv\":{\"ROW_inv\":[{\"name\":\"\\\"Chassis\\\"\",\"desc\":\"\\\"Nexus9000 C9300v Chassis\\\"\",\"productid\":\"N9K-C9300v\",\"vendorid\":\"\",\"serialnum\":\"9OAKTLOK5SH\"},{\"name\":\"\\\"Slot 1\\\"\",\"desc\":\"\\\"Nexus 9000v 64 port Ethernet Module\\\"\",\"productid\":\"N9K-X9364v\",\"vendorid\":\"\",\"serialnum\":\"9MV166DFY66\"},{\"name\":\"\\\"Slot 27\\\"\",\"desc\":\"\\\"Supervisor Module\\\"\",\"productid\":\"N9K-vSUP\",\"vendorid\":\"\",\"serialnum\":\"9WLQBV4KJSF\"}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060475644, + "cmd_timestamp": 1702060473663, + "cmd": "show interface transceiver | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_interface\":{\"ROW_interface\":[{\"interface\":\"Ethernet1/1\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/2\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/3\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/4\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/5\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/6\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/7\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/8\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/9\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/10\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/11\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/12\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/13\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/14\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/15\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/16\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/17\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/18\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/19\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/20\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/21\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/22\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/23\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/24\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/25\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/26\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/27\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/28\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/29\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/30\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/31\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/32\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/33\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/34\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/35\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/36\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/37\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/38\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/39\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/40\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/41\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/42\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/43\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/44\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/45\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/46\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/47\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/48\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/49\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/50\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/51\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/52\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/53\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/54\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/55\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/56\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/57\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/58\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/59\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/60\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/61\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/62\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/63\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/64\",\"sfp\":\"not applicable\"}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060473478, + "cmd_timestamp": 1702060472298, + "cmd": "show inventory | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_inv\":{\"ROW_inv\":[{\"name\":\"\\\"Chassis\\\"\",\"desc\":\"\\\"Nexus9000 C9300v Chassis\\\"\",\"productid\":\"N9K-C9300v\",\"vendorid\":\"\",\"serialnum\":\"942LB4K30B1\"},{\"name\":\"\\\"Slot 1\\\"\",\"desc\":\"\\\"Nexus 9000v 64 port Ethernet Module\\\"\",\"productid\":\"N9K-X9364v\",\"vendorid\":\"\",\"serialnum\":\"972RRMATKTK\"},{\"name\":\"\\\"Slot 27\\\"\",\"desc\":\"\\\"Supervisor Module\\\"\",\"productid\":\"N9K-vSUP\",\"vendorid\":\"\",\"serialnum\":\"93P8TA801YX\"}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060475905, + "cmd_timestamp": 1702060473478, + "cmd": "show interface transceiver | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_interface\":{\"ROW_interface\":[{\"interface\":\"Ethernet1/1\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/2\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/3\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/4\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/5\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/6\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/7\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/8\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/9\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/10\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/11\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/12\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/13\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/14\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/15\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/16\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/17\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/18\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/19\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/20\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/21\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/22\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/23\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/24\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/25\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/26\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/27\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/28\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/29\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/30\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/31\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/32\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/33\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/34\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/35\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/36\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/37\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/38\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/39\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/40\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/41\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/42\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/43\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/44\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/45\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/46\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/47\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/48\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/49\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/50\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/51\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/52\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/53\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/54\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/55\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/56\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/57\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/58\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/59\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/60\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/61\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/62\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/63\",\"sfp\":\"not applicable\"},{\"interface\":\"Ethernet1/64\",\"sfp\":\"not applicable\"}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/lldp.output b/tests/integration/sqcmds/multicast-input/lldp.output new file mode 100644 index 0000000000..e8891e05cb --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/lldp.output @@ -0,0 +1,115 @@ +[ + { + "status": 0, + "timestamp": 1702060462987, + "cmd_timestamp": 1702060462382, + "cmd": "show lldp neighbors detail| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"lldpNeighbors\": {\n \"Ethernet1\": {\n \"lldpNeighborInfo\": [\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.7379.0f4b\",\n \"systemName\": \"ceos-2\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060450.4623325,\n \"neighborDiscoveryTime\": 1700446249.0962849,\n \"lastChangeTime\": 1700446251.0948007,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"2.2.2.2\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Ethernet2\\\"\",\n \"interfaceId_v2\": \"Ethernet2\",\n \"interfaceDescription\": \"\\\"Connection to ceos-3\\\"\",\n \"linkAggregation8023Status\": \"capableAndDisabled\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9236,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n }\n ]\n },\n \"Ethernet3\": {\n \"lldpNeighborInfo\": []\n },\n \"Management0\": {\n \"lldpNeighborInfo\": [\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.7379.0f4b\",\n \"systemName\": \"ceos-2\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060450.4623868,\n \"neighborDiscoveryTime\": 1700446241.740981,\n \"lastChangeTime\": 1700446251.0948837,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"2.2.2.2\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Management0\\\"\",\n \"interfaceId_v2\": \"Management0\",\n \"linkAggregation8023Status\": \"notCapable\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9232,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n },\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.7399.bce4\",\n \"systemName\": \"ceos-1\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060446.3674521,\n \"neighborDiscoveryTime\": 1700446243.3106513,\n \"lastChangeTime\": 1700446250.100838,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"1.2.1.1\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Management0\\\"\",\n \"interfaceId_v2\": \"Management0\",\n \"linkAggregation8023Status\": \"notCapable\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9232,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n }\n ]\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463064, + "cmd_timestamp": 1702060462382, + "cmd": "show lldp neighbors detail| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"lldpNeighbors\": {\n \"Ethernet1\": {\n \"lldpNeighborInfo\": [\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.7379.0f4b\",\n \"systemName\": \"ceos-2\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060450.4610589,\n \"neighborDiscoveryTime\": 1700446249.0946546,\n \"lastChangeTime\": 1700446251.0946617,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"2.2.2.2\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Ethernet1\\\"\",\n \"interfaceId_v2\": \"Ethernet1\",\n \"interfaceDescription\": \"\\\"Connection to ceos-1\\\"\",\n \"linkAggregation8023Status\": \"capableAndDisabled\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9236,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n }\n ]\n },\n \"Ethernet3\": {\n \"lldpNeighborInfo\": []\n },\n \"Management0\": {\n \"lldpNeighborInfo\": [\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.7379.0f4b\",\n \"systemName\": \"ceos-2\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060450.4611442,\n \"neighborDiscoveryTime\": 1700446241.7613256,\n \"lastChangeTime\": 1700446251.094859,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"2.2.2.2\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Management0\\\"\",\n \"interfaceId_v2\": \"Management0\",\n \"linkAggregation8023Status\": \"notCapable\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9232,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n },\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.73ce.e630\",\n \"systemName\": \"ceos-3\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060446.3694062,\n \"neighborDiscoveryTime\": 1700446242.757238,\n \"lastChangeTime\": 1700446249.4569304,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"3.2.3.3\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Management0\\\"\",\n \"interfaceId_v2\": \"Management0\",\n \"linkAggregation8023Status\": \"notCapable\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9232,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n }\n ]\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463209, + "cmd_timestamp": 1702060462382, + "cmd": "show lldp neighbors detail| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"lldpNeighbors\": {\n \"Ethernet1\": {\n \"lldpNeighborInfo\": [\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.7399.bce4\",\n \"systemName\": \"ceos-1\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060446.3674498,\n \"neighborDiscoveryTime\": 1700446250.1006365,\n \"lastChangeTime\": 1700446250.1006365,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"1.2.1.1\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Ethernet1\\\"\",\n \"interfaceId_v2\": \"Ethernet1\",\n \"interfaceDescription\": \"\\\"Connection to ceos-2\\\"\",\n \"linkAggregation8023Status\": \"capableAndDisabled\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9236,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n }\n ]\n },\n \"Ethernet2\": {\n \"lldpNeighborInfo\": [\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.73ce.e630\",\n \"systemName\": \"ceos-3\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060446.369161,\n \"neighborDiscoveryTime\": 1700446249.4568303,\n \"lastChangeTime\": 1700446249.4568303,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"3.2.3.3\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Ethernet1\\\"\",\n \"interfaceId_v2\": \"Ethernet1\",\n \"interfaceDescription\": \"\\\"Connection to nxos-3\\\"\",\n \"linkAggregation8023Status\": \"capableAndDisabled\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9236,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n }\n ]\n },\n \"Management0\": {\n \"lldpNeighborInfo\": [\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.73ce.e630\",\n \"systemName\": \"ceos-3\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060446.369334,\n \"neighborDiscoveryTime\": 1700446242.7572842,\n \"lastChangeTime\": 1700446249.45703,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"3.2.3.3\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Management0\\\"\",\n \"interfaceId_v2\": \"Management0\",\n \"linkAggregation8023Status\": \"notCapable\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9232,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n },\n {\n \"chassisIdType\": \"macAddress\",\n \"chassisId\": \"001c.7399.bce4\",\n \"systemName\": \"ceos-1\",\n \"systemDescription\": \"Arista Networks EOS version 4.29.5M-33599604.4295M (engineering build) running on an Arista cEOSLab\",\n \"systemCapabilities\": {\n \"bridge\": true,\n \"router\": true\n },\n \"lastContactTime\": 1702060446.3677154,\n \"neighborDiscoveryTime\": 1700446243.3113449,\n \"lastChangeTime\": 1700446250.1008456,\n \"ttl\": 120,\n \"managementAddresses\": [\n {\n \"addressType\": \"ipv4\",\n \"address\": \"1.2.1.1\",\n \"interfaceNumType\": \"ifIndex\",\n \"interfaceNum\": 5000000,\n \"oidString\": \"\"\n }\n ],\n \"neighborInterfaceInfo\": {\n \"interfaceIdType\": \"interfaceName\",\n \"interfaceId\": \"\\\"Management0\\\"\",\n \"interfaceId_v2\": \"Management0\",\n \"linkAggregation8023Status\": \"notCapable\",\n \"linkAggregation8023InterfaceId\": 0,\n \"maxFrameSize\": 9232,\n \"portVlanId\": 0,\n \"vlanNames\": {},\n \"unknownOrgDefinedTlvs\": [],\n \"ztpBootVlan\": 0,\n \"portAndProtocolVlanSupported\": {},\n \"portAndProtocolVlanEnabled\": {},\n \"protocolIdentityInfo\": [],\n \"autoNegAdvertisedCapabilities\": [],\n \"unknownTlvs\": []\n }\n }\n ]\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463989, + "cmd_timestamp": 1702060462383, + "cmd": "show cdp neighbors | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_cdp_neighbor_brief_info\":{\"ROW_cdp_neighbor_brief_info\":[{\"ifindex\":436207616,\"device_id\":\"nxos-2(9VJFFOI3SRJ)\",\"intf_id\":\"Ethernet1/1\",\"ttl\":\"179\",\"capability\":[\"router\",\"switch\",\"Supports-STP-Dispute\"],\"platform_id\":\"N9K-C9300v\",\"port_id\":\"Ethernet1/2\"}]},\"neigh_count\":1}\n" + }, + { + "status": 16, + "timestamp": 1702060465513, + "cmd_timestamp": 1702060463989, + "cmd": "show lldp neighbors | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "Syntax error while parsing 'show lldp neighbors | json native'\n\n\nCmd exec error.\n" + } +][ + { + "status": 0, + "timestamp": 1702060463968, + "cmd_timestamp": 1702060462383, + "cmd": "show cdp neighbors | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_cdp_neighbor_brief_info\":{\"ROW_cdp_neighbor_brief_info\":[{\"ifindex\":436207616,\"device_id\":\"nxos-1(9OAKTLOK5SH)\",\"intf_id\":\"Ethernet1/1\",\"ttl\":\"154\",\"capability\":[\"router\",\"switch\",\"Supports-STP-Dispute\"],\"platform_id\":\"N9K-C9300v\",\"port_id\":\"Ethernet1/1\"},{\"ifindex\":436208128,\"device_id\":\"nxos-3(942LB4K30B1)\",\"intf_id\":\"Ethernet1/2\",\"ttl\":\"124\",\"capability\":[\"router\",\"switch\",\"Supports-STP-Dispute\"],\"platform_id\":\"N9K-C9300v\",\"port_id\":\"Ethernet1/1\"}]},\"neigh_count\":2}\n" + }, + { + "status": 16, + "timestamp": 1702060465857, + "cmd_timestamp": 1702060463968, + "cmd": "show lldp neighbors | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "Syntax error while parsing 'show lldp neighbors | json native'\n\n\nCmd exec error.\n" + } +][ + { + "status": 0, + "timestamp": 1702060464431, + "cmd_timestamp": 1702060462383, + "cmd": "show cdp neighbors | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_cdp_neighbor_brief_info\":{\"ROW_cdp_neighbor_brief_info\":[{\"ifindex\":436207616,\"device_id\":\"nxos-2(9VJFFOI3SRJ)\",\"intf_id\":\"Ethernet1/1\",\"ttl\":\"178\",\"capability\":[\"router\",\"switch\",\"Supports-STP-Dispute\"],\"platform_id\":\"N9K-C9300v\",\"port_id\":\"Ethernet1/1\"}]},\"neigh_count\":1}\n" + }, + { + "status": 16, + "timestamp": 1702060465874, + "cmd_timestamp": 1702060464432, + "cmd": "show lldp neighbors | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "Syntax error while parsing 'show lldp neighbors | json native'\n\n\nCmd exec error.\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/macs.output b/tests/integration/sqcmds/multicast-input/macs.output new file mode 100644 index 0000000000..d7860954fe --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/macs.output @@ -0,0 +1,115 @@ +[ + { + "status": 0, + "timestamp": 1702060463859, + "cmd_timestamp": 1702060462988, + "cmd": "show mac-address-table unicast| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"unicastTable\": {\n \"tableEntries\": []\n },\n \"disabledMacLearningVlans\": []\n}\n" + }, + { + "status": 0, + "timestamp": 1702060464581, + "cmd_timestamp": 1702060463859, + "cmd": "show vxlan address-table| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"addresses\": []\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463829, + "cmd_timestamp": 1702060463114, + "cmd": "show mac-address-table unicast| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"unicastTable\": {\n \"tableEntries\": []\n },\n \"disabledMacLearningVlans\": []\n}\n" + }, + { + "status": 0, + "timestamp": 1702060464949, + "cmd_timestamp": 1702060463829, + "cmd": "show vxlan address-table| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"addresses\": []\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464193, + "cmd_timestamp": 1702060463358, + "cmd": "show mac-address-table unicast| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"unicastTable\": {\n \"tableEntries\": []\n },\n \"disabledMacLearningVlans\": []\n}\n" + }, + { + "status": 0, + "timestamp": 1702060465116, + "cmd_timestamp": 1702060464193, + "cmd": "show vxlan address-table| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"addresses\": []\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060465465, + "cmd_timestamp": 1702060464086, + "cmd": "show mac address-table | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_mac_address\":{\"ROW_mac_address\":[{\"disp_mac_addr\":\"aac1.abed.c92e\",\"disp_type\":\"dynamic\",\"disp_vlan\":\"10\",\"disp_age\":\"0\",\"disp_is_secure\":\"F\",\"disp_is_ntfy\":\"F\",\"disp_port\":\"Eth1/3\"},{\"disp_mac_addr\":\"0c43.9c00.1b08\",\"disp_type\":\"static\",\"disp_vlan\":\"-\",\"disp_age\":\"-\",\"disp_is_secure\":\"F\",\"disp_is_ntfy\":\"F\",\"disp_port\":\"sup-eth1(R)\"},{\"disp_mac_addr\":\"0c43.9c00.1b08\",\"disp_type\":\"static\",\"disp_vlan\":\"10\",\"disp_age\":\"-\",\"disp_is_secure\":\"F\",\"disp_is_ntfy\":\"F\",\"disp_port\":\"sup-eth1(R)\"}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060465755, + "cmd_timestamp": 1702060464022, + "cmd": "show mac address-table | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_mac_address\":{\"ROW_mac_address\":[{\"disp_mac_addr\":\"0c9a.ff00.1b08\",\"disp_type\":\"static\",\"disp_vlan\":\"-\",\"disp_age\":\"-\",\"disp_is_secure\":\"F\",\"disp_is_ntfy\":\"F\",\"disp_port\":\"sup-eth1(R)\"}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060466242, + "cmd_timestamp": 1702060464666, + "cmd": "show mac address-table | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_mac_address\":{\"ROW_mac_address\":[{\"disp_mac_addr\":\"aac1.ab58.516a\",\"disp_type\":\"dynamic\",\"disp_vlan\":\"1\",\"disp_age\":\"0\",\"disp_is_secure\":\"F\",\"disp_is_ntfy\":\"F\",\"disp_port\":\"Eth1/4\"},{\"disp_mac_addr\":\"0cf6.8b00.1b08\",\"disp_type\":\"static\",\"disp_vlan\":\"-\",\"disp_age\":\"-\",\"disp_is_secure\":\"F\",\"disp_is_ntfy\":\"F\",\"disp_port\":\"sup-eth1(R)\"}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/mlag.output b/tests/integration/sqcmds/multicast-input/mlag.output new file mode 100644 index 0000000000..834281b5a6 --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/mlag.output @@ -0,0 +1,76 @@ +[ + { + "status": 0, + "timestamp": 1702060465317, + "cmd_timestamp": 1702060464979, + "cmd": "show mlag detail| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"localInterface\": \"\",\n \"peerLink\": \"\",\n \"reloadDelay\": 300,\n \"reloadDelayNonMlag\": 300,\n \"state\": \"disabled\",\n \"mlagPorts\": {\n \"Disabled\": 0,\n \"Configured\": 0,\n \"Inactive\": 0,\n \"Active-partial\": 0,\n \"Active-full\": 0\n },\n \"portsErrdisabled\": false,\n \"dualPrimaryDetectionState\": \"disabled\",\n \"dualPrimaryPortsErrdisabled\": false,\n \"detail\": {\n \"mlagState\": \"disabled\",\n \"peerMlagState\": \"unknown\",\n \"stateChanges\": 0,\n \"mlagHwReady\": true,\n \"failover\": false,\n \"failoverCauseList\": [\n \"Unknown\"\n ],\n \"failoverInitiated\": false,\n \"secondaryFromFailover\": false,\n \"primaryPriority\": 32767,\n \"peerPrimaryPriority\": 0,\n \"peerMacAddress\": \"00:00:00:00:00:00\",\n \"peerMacRoutingSupported\": false,\n \"peerPortsErrdisabled\": false,\n \"lacpStandby\": false,\n \"heartbeatInterval\": 4000,\n \"effectiveHeartbeatInterval\": 0,\n \"heartbeatTimeout\": 0,\n \"heartbeatTimeoutsSinceReboot\": 0,\n \"udpHeartbeatAlive\": false,\n \"udpHeartbeatsReceived\": 0,\n \"udpHeartbeatsSent\": 0,\n \"enabled\": false,\n \"mountChanges\": 0,\n \"fastMacRedirectionEnabled\": false,\n \"mlagIntfEgressAclInterlockState\": \"unsupported\",\n \"mlagIntfEgressAclInterlockInactiveReason\": \"noInactiveReason\"\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060466025, + "cmd_timestamp": 1702060465317, + "cmd": "show mlag interfaces| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"interfaces\": {}\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060465599, + "cmd_timestamp": 1702060465197, + "cmd": "show mlag detail| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"localInterface\": \"\",\n \"peerLink\": \"\",\n \"reloadDelay\": 300,\n \"reloadDelayNonMlag\": 300,\n \"state\": \"disabled\",\n \"mlagPorts\": {\n \"Disabled\": 0,\n \"Configured\": 0,\n \"Inactive\": 0,\n \"Active-partial\": 0,\n \"Active-full\": 0\n },\n \"portsErrdisabled\": false,\n \"dualPrimaryDetectionState\": \"disabled\",\n \"dualPrimaryPortsErrdisabled\": false,\n \"detail\": {\n \"mlagState\": \"disabled\",\n \"peerMlagState\": \"unknown\",\n \"stateChanges\": 0,\n \"mlagHwReady\": true,\n \"failover\": false,\n \"failoverCauseList\": [\n \"Unknown\"\n ],\n \"failoverInitiated\": false,\n \"secondaryFromFailover\": false,\n \"primaryPriority\": 32767,\n \"peerPrimaryPriority\": 0,\n \"peerMacAddress\": \"00:00:00:00:00:00\",\n \"peerMacRoutingSupported\": false,\n \"peerPortsErrdisabled\": false,\n \"lacpStandby\": false,\n \"heartbeatInterval\": 4000,\n \"effectiveHeartbeatInterval\": 0,\n \"heartbeatTimeout\": 0,\n \"heartbeatTimeoutsSinceReboot\": 0,\n \"udpHeartbeatAlive\": false,\n \"udpHeartbeatsReceived\": 0,\n \"udpHeartbeatsSent\": 0,\n \"enabled\": false,\n \"mountChanges\": 0,\n \"fastMacRedirectionEnabled\": false,\n \"mlagIntfEgressAclInterlockState\": \"unsupported\",\n \"mlagIntfEgressAclInterlockInactiveReason\": \"noInactiveReason\"\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060466418, + "cmd_timestamp": 1702060465599, + "cmd": "show mlag interfaces| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"interfaces\": {}\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060466150, + "cmd_timestamp": 1702060465578, + "cmd": "show mlag detail| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"localInterface\": \"\",\n \"peerLink\": \"\",\n \"reloadDelay\": 300,\n \"reloadDelayNonMlag\": 300,\n \"state\": \"disabled\",\n \"mlagPorts\": {\n \"Disabled\": 0,\n \"Configured\": 0,\n \"Inactive\": 0,\n \"Active-partial\": 0,\n \"Active-full\": 0\n },\n \"portsErrdisabled\": false,\n \"dualPrimaryDetectionState\": \"disabled\",\n \"dualPrimaryPortsErrdisabled\": false,\n \"detail\": {\n \"mlagState\": \"disabled\",\n \"peerMlagState\": \"unknown\",\n \"stateChanges\": 0,\n \"mlagHwReady\": true,\n \"failover\": false,\n \"failoverCauseList\": [\n \"Unknown\"\n ],\n \"failoverInitiated\": false,\n \"secondaryFromFailover\": false,\n \"primaryPriority\": 32767,\n \"peerPrimaryPriority\": 0,\n \"peerMacAddress\": \"00:00:00:00:00:00\",\n \"peerMacRoutingSupported\": false,\n \"peerPortsErrdisabled\": false,\n \"lacpStandby\": false,\n \"heartbeatInterval\": 4000,\n \"effectiveHeartbeatInterval\": 0,\n \"heartbeatTimeout\": 0,\n \"heartbeatTimeoutsSinceReboot\": 0,\n \"udpHeartbeatAlive\": false,\n \"udpHeartbeatsReceived\": 0,\n \"udpHeartbeatsSent\": 0,\n \"enabled\": false,\n \"mountChanges\": 0,\n \"fastMacRedirectionEnabled\": false,\n \"mlagIntfEgressAclInterlockState\": \"unsupported\",\n \"mlagIntfEgressAclInterlockInactiveReason\": \"noInactiveReason\"\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060466629, + "cmd_timestamp": 1702060466150, + "cmd": "show mlag interfaces| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"interfaces\": {}\n}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/mroutes.output b/tests/integration/sqcmds/multicast-input/mroutes.output new file mode 100644 index 0000000000..4015305f7f --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/mroutes.output @@ -0,0 +1,79 @@ +[ + { + "status": 0, + "timestamp": 1702060462965, + "cmd_timestamp": 1702060462382, + "cmd": "show ip mroute| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"bidirectional\": {\n \"groups\": {}\n },\n \"sparseMode\": {\n \"groups\": {\n \"225.2.0.1\": {\n \"groupSources\": {\n \"10.2.13.10\": {\n \"sourceAddress\": \"10.2.13.10\",\n \"creationTime\": 1702048640.0,\n \"routeFlags\": \"SLP\",\n \"registerInOifList\": false,\n \"rpfInterface\": \"Ethernet3\",\n \"rpf\": {\n \"rpfRib\": \"U\",\n \"rpfPrefix\": \"10.2.13.0/24\",\n \"rpfPreference\": 0,\n \"rpfMetric\": 1,\n \"rpfNeighbor\": \"\",\n \"rpfAttached\": true,\n \"rpfEvpnTenantDomain\": false,\n \"rpfMvpn\": false\n },\n \"oifList\": [\n \"Ethernet1\"\n ]\n }\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463286, + "cmd_timestamp": 1702060462383, + "cmd": "show ip mroute| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"bidirectional\": {\n \"groups\": {}\n },\n \"sparseMode\": {\n \"groups\": {\n \"225.2.0.1\": {\n \"groupSources\": {\n \"0.0.0.0\": {\n \"sourceAddress\": \"0.0.0.0\",\n \"creationTime\": 1700447616.0,\n \"routeFlags\": \"W\",\n \"rp\": \"2.2.2.2\",\n \"rpfInterface\": \"Ethernet1\",\n \"rpf\": {\n \"rpfRib\": \"U\",\n \"rpfPrefix\": \"2.2.2.2/32\",\n \"rpfPreference\": 110,\n \"rpfMetric\": 20,\n \"rpfNeighbor\": \"10.2.1.1\",\n \"rpfAttached\": false,\n \"rpfEvpnTenantDomain\": false,\n \"rpfMvpn\": false\n },\n \"oifList\": [\n \"Ethernet3\"\n ]\n },\n \"10.2.13.10\": {\n \"sourceAddress\": \"10.2.13.10\",\n \"creationTime\": 1702048640.0,\n \"routeFlags\": \"SP\",\n \"registerInOifList\": false,\n \"rpfInterface\": \"Ethernet1\",\n \"rpf\": {\n \"rpfRib\": \"U\",\n \"rpfPrefix\": \"10.2.13.0/24\",\n \"rpfPreference\": 110,\n \"rpfMetric\": 30,\n \"rpfNeighbor\": \"10.2.1.1\",\n \"rpfAttached\": false,\n \"rpfEvpnTenantDomain\": false,\n \"rpfMvpn\": false\n },\n \"oifList\": [\n \"Ethernet3\"\n ]\n }\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060463420, + "cmd_timestamp": 1702060462382, + "cmd": "show ip mroute| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"bidirectional\": {\n \"groups\": {}\n },\n \"sparseMode\": {\n \"groups\": {\n \"225.2.0.1\": {\n \"groupSources\": {\n \"0.0.0.0\": {\n \"sourceAddress\": \"0.0.0.0\",\n \"creationTime\": 1700447616.0,\n \"routeFlags\": \"W\",\n \"rp\": \"2.2.2.2\",\n \"rpfInterface\": \"Register0\",\n \"oifList\": [\n \"Ethernet1\"\n ]\n },\n \"10.2.13.10\": {\n \"sourceAddress\": \"10.2.13.10\",\n \"creationTime\": 1702048640.0,\n \"routeFlags\": \"SNCP\",\n \"registerInOifList\": false,\n \"rpfInterface\": \"Ethernet2\",\n \"rpf\": {\n \"rpfRib\": \"U\",\n \"rpfPrefix\": \"10.2.13.0/24\",\n \"rpfPreference\": 110,\n \"rpfMetric\": 20,\n \"rpfNeighbor\": \"10.2.2.2\",\n \"rpfAttached\": false,\n \"rpfEvpnTenantDomain\": false,\n \"rpfMvpn\": false\n },\n \"oifList\": [\n \"Ethernet1\"\n ]\n }\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464021, + "cmd_timestamp": 1702060462383, + "cmd": "show ip mroute vrf all", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "IP Multicast Routing Table for VRF \"default\"\n\n(*, 225.1.0.1/32), uptime: 2w4d, pim ip \n Incoming interface: loopback0, RPF nbr: 2.1.2.2\n Outgoing interface list: (count: 1)\n Ethernet1/1, uptime: 2w4d, pim\n\n\n(10.1.13.10/32, 225.1.0.1/32), uptime: 03:16:38, pim mrib ip \n Incoming interface: Ethernet1/2, RPF nbr: 10.1.2.2, internal\n Outgoing interface list: (count: 1)\n Ethernet1/1, uptime: 03:16:38, pim\n\n\n(*, 232.0.0.0/8), uptime: 2w4d, pim ip \n Incoming interface: Null, RPF nbr: 0.0.0.0\n Outgoing interface list: (count: 0)\n\n\n\n" + } +][ + { + "status": 0, + "timestamp": 1702060464085, + "cmd_timestamp": 1702060462383, + "cmd": "show ip mroute vrf all", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "IP Multicast Routing Table for VRF \"default\"\n\n(10.1.13.10/32, 225.1.0.1/32), uptime: 03:16:38, ip pim \n Incoming interface: Vlan10, RPF nbr: 10.1.13.10\n Outgoing interface list: (count: 1)\n Ethernet1/1, uptime: 03:16:38, pim\n\n\n(*, 232.0.0.0/8), uptime: 2w4d, pim ip \n Incoming interface: Null, RPF nbr: 0.0.0.0\n Outgoing interface list: (count: 0)\n\n\n\n" + } +][ + { + "status": 0, + "timestamp": 1702060464293, + "cmd_timestamp": 1702060462383, + "cmd": "show ip mroute vrf all", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "IP Multicast Routing Table for VRF \"default\"\n\n(*, 225.1.0.1/32), uptime: 2w4d, igmp ip pim \n Incoming interface: Ethernet1/1, RPF nbr: 10.1.1.1\n Outgoing interface list: (count: 1)\n Ethernet1/3, uptime: 2w4d, igmp\n\n\n(10.1.13.10/32, 225.1.0.1/32), uptime: 03:16:39, ip mrib pim \n Incoming interface: Ethernet1/1, RPF nbr: 10.1.1.1\n Outgoing interface list: (count: 1)\n Ethernet1/3, uptime: 03:16:39, mrib\n\n\n(*, 232.0.0.0/8), uptime: 2w4d, pim ip \n Incoming interface: Null, RPF nbr: 0.0.0.0\n Outgoing interface list: (count: 0)\n\n\n\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/ospfIf.output b/tests/integration/sqcmds/multicast-input/ospfIf.output new file mode 100644 index 0000000000..d42f5b29ed --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/ospfIf.output @@ -0,0 +1,151 @@ +[ + { + "status": 0, + "timestamp": 1702060464185, + "cmd_timestamp": 1702060463489, + "cmd": "show ip ospf vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"instanceId\": 1,\n \"maxLsaInformation\": {\n \"maxLsa\": 12000,\n \"maxLsaThreshold\": 75,\n \"maxLsaWarningOnly\": false,\n \"maxLsaIgnoreTime\": 5,\n \"maxLsaResetTime\": 5,\n \"maxLsaAllowedIgnoreCount\": 5,\n \"maxLsaCurrentIgnoreCount\": 0,\n \"maxLsaIgnoring\": false\n },\n \"routerId\": \"3.2.3.3\",\n \"referenceBandwidth\": 0,\n \"asbr\": false,\n \"abr\": false,\n \"spfInformation\": {\n \"spfInterval\": 5,\n \"spfStartInterval\": 0,\n \"spfHoldInterval\": 5000,\n \"spfCurrHoldInterval\": 5000,\n \"spfMaxWaitInterval\": 5000,\n \"lastSpf\": 1612846,\n \"nextSpf\": 0\n },\n \"lsaInformation\": {\n \"lsaArrivalInterval\": 1000,\n \"lsaStartInterval\": 1000,\n \"lsaHoldInterval\": 5000,\n \"lsaMaxWaitInterval\": 5000,\n \"numLsa\": 5\n },\n \"externalLsaInformation\": {\n \"treeSize\": 0,\n \"asExternalCksum\": 0\n },\n \"opaqueLsaInformation\": {\n \"opaque\": true,\n \"opaqueTreeSize\": 0,\n \"opaqueCksum\": 0\n },\n \"vrf\": \"default\",\n \"numAreas\": 1,\n \"numNormalAreas\": 1,\n \"numStubAreas\": 0,\n \"numNssaAreas\": 0,\n \"adjacencyExchangeStartThreshold\": 20,\n \"lsaRetransmissionThreshold\": 10,\n \"ecmpMaximumNexthops\": 128,\n \"floodPacing\": 0,\n \"areaList\": {\n \"0.0.0.0\": {\n \"areaId\": \"0.0.0.0\",\n \"numIntf\": 3,\n \"stubArea\": false,\n \"normalArea\": true,\n \"teEnabled\": false,\n \"spfCount\": 8,\n \"lsaInformation\": {\n \"treeSize\": 5,\n \"asExternalCksum\": 143606\n },\n \"opaqueLsaInformation\": {\n \"opaqueTreeSize\": 0,\n \"opaqueCksum\": 0\n },\n \"opaqueAreaLsaInformation\": {\n \"opaqueTreeSize\": 0,\n \"opaqueCksumSum\": 0\n },\n \"rangeList\": {\n \"3.2.3.3\": {\n \"address\": \"3.2.3.3\",\n \"maskLen\": 32,\n \"cost\": 0,\n \"doNotAdvertise\": false\n },\n \"10.2.0.0\": {\n \"address\": \"10.2.0.0\",\n \"maskLen\": 16,\n \"cost\": 0,\n \"doNotAdvertise\": false\n }\n },\n \"areaFiltersConfigured\": false,\n \"dcClearCount\": 0,\n \"indLsaCount\": 0\n }\n },\n \"gracefulRestartInfo\": {\n \"gracefulRestart\": false,\n \"gracePeriod\": 120.0,\n \"plannedOnly\": false,\n \"state\": \"none\",\n \"restartExpirationTime\": null,\n \"lastExitReason\": \"lastExitNone\",\n \"lastExitTime\": null,\n \"helperMode\": true,\n \"helperLooseLsaCheck\": true,\n \"lastRestartReason\": \"Unknown\",\n \"restartDuration\": null\n },\n \"shutDown\": false,\n \"numBackboneNeighbors\": 1,\n \"tunnelRoutesEnabled\": false,\n \"secondaryDomainIds\": []\n }\n }\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060464978, + "cmd_timestamp": 1702060464185, + "cmd": "show ip ospf interface vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"interfaces\": {\n \"Loopback0\": {\n \"state\": \"dr\",\n \"priority\": 1,\n \"cost\": 10,\n \"neighborCount\": 0,\n \"designatedRouter\": \"3.2.3.3\",\n \"helloInterval\": 10,\n \"deadInterval\": 40,\n \"retransmitInterval\": 5,\n \"transmitDelay\": 1,\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": false,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"area\": \"0.0.0.0\",\n \"interfaceAddress\": \"3.2.3.3\",\n \"interfaceMask\": 32,\n \"interfaceType\": \"broadcast\",\n \"bfdState\": \"default\",\n \"passive\": false,\n \"teEnabled\": false\n },\n \"Ethernet1\": {\n \"state\": \"dr\",\n \"priority\": 1,\n \"cost\": 10,\n \"neighborCount\": 1,\n \"designatedRouter\": \"3.2.3.3\",\n \"backupDesignatedRouter\": \"2.2.2.2\",\n \"helloInterval\": 10,\n \"deadInterval\": 40,\n \"retransmitInterval\": 5,\n \"transmitDelay\": 1,\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": false,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"area\": \"0.0.0.0\",\n \"interfaceAddress\": \"10.2.2.2\",\n \"interfaceMask\": 30,\n \"interfaceType\": \"broadcast\",\n \"bfdState\": \"default\",\n \"passive\": false,\n \"teEnabled\": false,\n \"interfaceSpeed\": 1000\n },\n \"Ethernet3\": {\n \"state\": \"dr\",\n \"priority\": 1,\n \"cost\": 10,\n \"neighborCount\": 0,\n \"designatedRouter\": \"3.2.3.3\",\n \"helloInterval\": 10,\n \"deadInterval\": 40,\n \"retransmitInterval\": 5,\n \"transmitDelay\": 1,\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": false,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"area\": \"0.0.0.0\",\n \"interfaceAddress\": \"10.2.13.1\",\n \"interfaceMask\": 24,\n \"interfaceType\": \"broadcast\",\n \"bfdState\": \"default\",\n \"passive\": false,\n \"teEnabled\": false,\n \"interfaceSpeed\": 1000\n }\n }\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464384, + "cmd_timestamp": 1702060463668, + "cmd": "show ip ospf vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"instanceId\": 1,\n \"maxLsaInformation\": {\n \"maxLsa\": 12000,\n \"maxLsaThreshold\": 75,\n \"maxLsaWarningOnly\": false,\n \"maxLsaIgnoreTime\": 5,\n \"maxLsaResetTime\": 5,\n \"maxLsaAllowedIgnoreCount\": 5,\n \"maxLsaCurrentIgnoreCount\": 0,\n \"maxLsaIgnoring\": false\n },\n \"routerId\": \"1.2.1.1\",\n \"referenceBandwidth\": 0,\n \"asbr\": false,\n \"abr\": false,\n \"spfInformation\": {\n \"spfInterval\": 5,\n \"spfStartInterval\": 0,\n \"spfHoldInterval\": 5000,\n \"spfCurrHoldInterval\": 5000,\n \"spfMaxWaitInterval\": 5000,\n \"lastSpf\": 1612843,\n \"nextSpf\": 0\n },\n \"lsaInformation\": {\n \"lsaArrivalInterval\": 1000,\n \"lsaStartInterval\": 1000,\n \"lsaHoldInterval\": 5000,\n \"lsaMaxWaitInterval\": 5000,\n \"numLsa\": 5\n },\n \"externalLsaInformation\": {\n \"treeSize\": 0,\n \"asExternalCksum\": 0\n },\n \"opaqueLsaInformation\": {\n \"opaque\": true,\n \"opaqueTreeSize\": 0,\n \"opaqueCksum\": 0\n },\n \"vrf\": \"default\",\n \"numAreas\": 1,\n \"numNormalAreas\": 1,\n \"numStubAreas\": 0,\n \"numNssaAreas\": 0,\n \"adjacencyExchangeStartThreshold\": 20,\n \"lsaRetransmissionThreshold\": 10,\n \"ecmpMaximumNexthops\": 128,\n \"floodPacing\": 0,\n \"areaList\": {\n \"0.0.0.0\": {\n \"areaId\": \"0.0.0.0\",\n \"numIntf\": 2,\n \"stubArea\": false,\n \"normalArea\": true,\n \"teEnabled\": false,\n \"spfCount\": 7,\n \"lsaInformation\": {\n \"treeSize\": 5,\n \"asExternalCksum\": 143606\n },\n \"opaqueLsaInformation\": {\n \"opaqueTreeSize\": 0,\n \"opaqueCksum\": 0\n },\n \"opaqueAreaLsaInformation\": {\n \"opaqueTreeSize\": 0,\n \"opaqueCksumSum\": 0\n },\n \"rangeList\": {\n \"1.2.1.1\": {\n \"address\": \"1.2.1.1\",\n \"maskLen\": 32,\n \"cost\": 0,\n \"doNotAdvertise\": false\n },\n \"10.2.0.0\": {\n \"address\": \"10.2.0.0\",\n \"maskLen\": 16,\n \"cost\": 0,\n \"doNotAdvertise\": false\n }\n },\n \"areaFiltersConfigured\": false,\n \"dcClearCount\": 0,\n \"indLsaCount\": 0\n }\n },\n \"gracefulRestartInfo\": {\n \"gracefulRestart\": false,\n \"gracePeriod\": 120.0,\n \"plannedOnly\": false,\n \"state\": \"none\",\n \"restartExpirationTime\": null,\n \"lastExitReason\": \"lastExitNone\",\n \"lastExitTime\": null,\n \"helperMode\": true,\n \"helperLooseLsaCheck\": true,\n \"lastRestartReason\": \"Unknown\",\n \"restartDuration\": null\n },\n \"shutDown\": false,\n \"numBackboneNeighbors\": 1,\n \"tunnelRoutesEnabled\": false,\n \"secondaryDomainIds\": []\n }\n }\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060465196, + "cmd_timestamp": 1702060464384, + "cmd": "show ip ospf interface vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"interfaces\": {\n \"Ethernet3\": {\n \"state\": \"dr\",\n \"priority\": 1,\n \"cost\": 10,\n \"neighborCount\": 0,\n \"designatedRouter\": \"1.2.1.1\",\n \"helloInterval\": 10,\n \"deadInterval\": 40,\n \"retransmitInterval\": 5,\n \"transmitDelay\": 1,\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": false,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"area\": \"0.0.0.0\",\n \"interfaceAddress\": \"10.2.11.1\",\n \"interfaceMask\": 24,\n \"interfaceType\": \"broadcast\",\n \"bfdState\": \"default\",\n \"passive\": false,\n \"teEnabled\": false,\n \"interfaceSpeed\": 1000\n },\n \"Ethernet1\": {\n \"state\": \"backupDr\",\n \"priority\": 1,\n \"cost\": 10,\n \"neighborCount\": 1,\n \"designatedRouter\": \"2.2.2.2\",\n \"backupDesignatedRouter\": \"1.2.1.1\",\n \"helloInterval\": 10,\n \"deadInterval\": 40,\n \"retransmitInterval\": 5,\n \"transmitDelay\": 1,\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": false,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"area\": \"0.0.0.0\",\n \"interfaceAddress\": \"10.2.1.2\",\n \"interfaceMask\": 30,\n \"interfaceType\": \"broadcast\",\n \"bfdState\": \"default\",\n \"passive\": false,\n \"teEnabled\": false,\n \"interfaceSpeed\": 1000\n }\n }\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060465066, + "cmd_timestamp": 1702060464045, + "cmd": "show ip ospf vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"instanceId\": 1,\n \"maxLsaInformation\": {\n \"maxLsa\": 12000,\n \"maxLsaThreshold\": 75,\n \"maxLsaWarningOnly\": false,\n \"maxLsaIgnoreTime\": 5,\n \"maxLsaResetTime\": 5,\n \"maxLsaAllowedIgnoreCount\": 5,\n \"maxLsaCurrentIgnoreCount\": 0,\n \"maxLsaIgnoring\": false\n },\n \"routerId\": \"2.2.2.2\",\n \"referenceBandwidth\": 0,\n \"asbr\": false,\n \"abr\": false,\n \"spfInformation\": {\n \"spfInterval\": 5,\n \"spfStartInterval\": 0,\n \"spfHoldInterval\": 5000,\n \"spfCurrHoldInterval\": 5000,\n \"spfMaxWaitInterval\": 5000,\n \"lastSpf\": 1612846,\n \"nextSpf\": 0\n },\n \"lsaInformation\": {\n \"lsaArrivalInterval\": 1000,\n \"lsaStartInterval\": 1000,\n \"lsaHoldInterval\": 5000,\n \"lsaMaxWaitInterval\": 5000,\n \"numLsa\": 5\n },\n \"externalLsaInformation\": {\n \"treeSize\": 0,\n \"asExternalCksum\": 0\n },\n \"opaqueLsaInformation\": {\n \"opaque\": true,\n \"opaqueTreeSize\": 0,\n \"opaqueCksum\": 0\n },\n \"vrf\": \"default\",\n \"numAreas\": 1,\n \"numNormalAreas\": 1,\n \"numStubAreas\": 0,\n \"numNssaAreas\": 0,\n \"adjacencyExchangeStartThreshold\": 20,\n \"lsaRetransmissionThreshold\": 10,\n \"ecmpMaximumNexthops\": 128,\n \"floodPacing\": 0,\n \"areaList\": {\n \"0.0.0.0\": {\n \"areaId\": \"0.0.0.0\",\n \"numIntf\": 3,\n \"stubArea\": false,\n \"normalArea\": true,\n \"teEnabled\": false,\n \"spfCount\": 9,\n \"lsaInformation\": {\n \"treeSize\": 5,\n \"asExternalCksum\": 143606\n },\n \"opaqueLsaInformation\": {\n \"opaqueTreeSize\": 0,\n \"opaqueCksum\": 0\n },\n \"opaqueAreaLsaInformation\": {\n \"opaqueTreeSize\": 0,\n \"opaqueCksumSum\": 0\n },\n \"rangeList\": {\n \"2.2.2.2\": {\n \"address\": \"2.2.2.2\",\n \"maskLen\": 32,\n \"cost\": 0,\n \"doNotAdvertise\": false\n },\n \"10.2.0.0\": {\n \"address\": \"10.2.0.0\",\n \"maskLen\": 16,\n \"cost\": 0,\n \"doNotAdvertise\": false\n }\n },\n \"areaFiltersConfigured\": false,\n \"dcClearCount\": 0,\n \"indLsaCount\": 0\n }\n },\n \"gracefulRestartInfo\": {\n \"gracefulRestart\": false,\n \"gracePeriod\": 120.0,\n \"plannedOnly\": false,\n \"state\": \"none\",\n \"restartExpirationTime\": null,\n \"lastExitReason\": \"lastExitNone\",\n \"lastExitTime\": null,\n \"helperMode\": true,\n \"helperLooseLsaCheck\": true,\n \"lastRestartReason\": \"Unknown\",\n \"restartDuration\": null\n },\n \"shutDown\": false,\n \"numBackboneNeighbors\": 2,\n \"tunnelRoutesEnabled\": false,\n \"secondaryDomainIds\": []\n }\n }\n }\n }\n}\n" + }, + { + "status": 0, + "timestamp": 1702060465792, + "cmd_timestamp": 1702060465066, + "cmd": "show ip ospf interface vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"interfaces\": {\n \"Loopback0\": {\n \"state\": \"dr\",\n \"priority\": 1,\n \"cost\": 10,\n \"neighborCount\": 0,\n \"designatedRouter\": \"2.2.2.2\",\n \"helloInterval\": 10,\n \"deadInterval\": 40,\n \"retransmitInterval\": 5,\n \"transmitDelay\": 1,\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": false,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"area\": \"0.0.0.0\",\n \"interfaceAddress\": \"2.2.2.2\",\n \"interfaceMask\": 32,\n \"interfaceType\": \"broadcast\",\n \"bfdState\": \"default\",\n \"passive\": false,\n \"teEnabled\": false\n },\n \"Ethernet1\": {\n \"state\": \"dr\",\n \"priority\": 1,\n \"cost\": 10,\n \"neighborCount\": 1,\n \"designatedRouter\": \"2.2.2.2\",\n \"backupDesignatedRouter\": \"1.2.1.1\",\n \"helloInterval\": 10,\n \"deadInterval\": 40,\n \"retransmitInterval\": 5,\n \"transmitDelay\": 1,\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": false,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"area\": \"0.0.0.0\",\n \"interfaceAddress\": \"10.2.1.1\",\n \"interfaceMask\": 30,\n \"interfaceType\": \"broadcast\",\n \"bfdState\": \"default\",\n \"passive\": false,\n \"teEnabled\": false,\n \"interfaceSpeed\": 1000\n },\n \"Ethernet2\": {\n \"state\": \"backupDr\",\n \"priority\": 1,\n \"cost\": 10,\n \"neighborCount\": 1,\n \"designatedRouter\": \"3.2.3.3\",\n \"backupDesignatedRouter\": \"2.2.2.2\",\n \"helloInterval\": 10,\n \"deadInterval\": 40,\n \"retransmitInterval\": 5,\n \"transmitDelay\": 1,\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": false,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"area\": \"0.0.0.0\",\n \"interfaceAddress\": \"10.2.2.1\",\n \"interfaceMask\": 30,\n \"interfaceType\": \"broadcast\",\n \"bfdState\": \"default\",\n \"passive\": false,\n \"teEnabled\": false,\n \"interfaceSpeed\": 1000\n }\n }\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467078, + "cmd_timestamp": 1702060465761, + "cmd": "show ip ospf interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"cname\":\"default\",\"TABLE_intf\":{\"ROW_intf\":[{\"ifname\":\"Ethernet1/1\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"10.1.1.1\",\"masklen\":30,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"DR\",\"type_str\":\"BROADCAST\",\"cost\":40,\"index\":2,\"transmit_delay\":1,\"if_priority\":1,\"dr_rid\":\"2.1.2.2\",\"dr_addr\":\"10.1.1.1\",\"bdr_rid\":\"1.1.1.1\",\"bdr_addr\":\"10.1.1.2\",\"nbr_total\":1,\"nbr_flood\":1,\"nbr_adjs\":1,\"hello_interval\":10,\"dead_interval\":40,\"wait_interval\":40,\"rxmt_interval\":5,\"hello_timer\":\"PT0S\",\"auth_type\":\"none\",\"link_lsa_cnt\":0,\"link_lsa_crc\":0,\"state_chg_cnt\":2},{\"ifname\":\"Ethernet1/2\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"10.1.2.1\",\"masklen\":30,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"BDR\",\"type_str\":\"BROADCAST\",\"cost\":40,\"index\":3,\"transmit_delay\":1,\"if_priority\":1,\"dr_rid\":\"3.1.3.3\",\"dr_addr\":\"10.1.2.2\",\"bdr_rid\":\"2.1.2.2\",\"bdr_addr\":\"10.1.2.1\",\"nbr_total\":1,\"nbr_flood\":1,\"nbr_adjs\":1,\"hello_interval\":10,\"dead_interval\":40,\"wait_interval\":40,\"rxmt_interval\":5,\"hello_timer\":\"PT8S\",\"auth_type\":\"none\",\"link_lsa_cnt\":0,\"link_lsa_crc\":0,\"state_chg_cnt\":3},{\"ifname\":\"loopback0\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"2.1.2.2\",\"masklen\":32,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"LOOPBACK\",\"type_str\":\"LOOPBACK\",\"cost\":1,\"index\":1}]}}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060467895, + "cmd_timestamp": 1702060467078, + "cmd": "show ip ospf vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"instance_number\":1,\"cname\":\"default\",\"rid\":\"2.1.2.2\",\"stateful_ha\":\"true\",\"gr_ha\":\"true\",\"gr_planned_only\":\"true\",\"gr_grace_period\":\"PT60S\",\"gr_state\":\"inactive\",\"gr_last_status\":\"None\",\"support_tos0_only\":\"true\",\"support_opaque_lsa\":\"true\",\"is_abr\":\"false\",\"is_asbr\":\"false\",\"admin_dist\":110,\"ref_bw\":40000,\"spf_start_time\":\"PT0S\",\"spf_hold_time\":\"PT1S\",\"spf_max_time\":\"PT5S\",\"lsa_start_time\":\"PT0S\",\"lsa_hold_time\":\"PT5S\",\"lsa_max_time\":\"PT5S\",\"min_lsa_arr_time\":\"PT1S\",\"lsa_aging_pace\":10,\"spf_max_paths\":8,\"max_metric_adver\":\"false\",\"asext_lsa_cnt\":0,\"asext_lsa_crc\":\"0\",\"asopaque_lsa_cnt\":0,\"asopaque_lsa_crc\":\"0\",\"area_total\":1,\"area_normal\":1,\"area_stub\":0,\"area_nssa\":0,\"act_area_total\":1,\"act_area_normal\":1,\"act_area_stub\":0,\"act_area_nssa\":0,\"no_discard_rt_ext\":\"false\",\"no_discard_rt_int\":\"false\",\"num_new_lsa_tx\":4,\"num_new_lsa_rx\":2687,\"TABLE_area\":{\"ROW_area\":[{\"aname\":\"0.0.0.0\",\"backbone_active\":\"true\",\"age\":\"P18DT20H32M19S\",\"total_intf\":3,\"act_intf\":3,\"passive_intf\":0,\"loopback_intf\":1,\"stub\":\"false\",\"nssa\":\"false\",\"no_summary\":\"false\",\"auth_type\":\"none\",\"spf_runs\":5,\"last_spf_run_time\":\"PT0S\",\"TABLE_range\":{\"ROW_range\":[{\"addr\":\"2.1.2.2\",\"masklen\":32,\"state\":\"active\",\"nets\":1,\"advertise\":\"advertise\"},{\"addr\":\"10.1.0.0\",\"masklen\":16,\"state\":\"active\",\"nets\":4,\"advertise\":\"advertise\"}]},\"lsa_cnt\":5,\"lsa_crc\":\"0x2c3e5\"}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467626, + "cmd_timestamp": 1702060465514, + "cmd": "show ip ospf interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"cname\":\"default\",\"TABLE_intf\":{\"ROW_intf\":[{\"ifname\":\"Ethernet1/1\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"10.1.2.2\",\"masklen\":30,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"DR\",\"type_str\":\"BROADCAST\",\"cost\":40,\"index\":2,\"transmit_delay\":1,\"if_priority\":1,\"dr_rid\":\"3.1.3.3\",\"dr_addr\":\"10.1.2.2\",\"bdr_rid\":\"2.1.2.2\",\"bdr_addr\":\"10.1.2.1\",\"nbr_total\":1,\"nbr_flood\":1,\"nbr_adjs\":1,\"hello_interval\":10,\"dead_interval\":40,\"wait_interval\":40,\"rxmt_interval\":5,\"hello_timer\":\"PT7S\",\"auth_type\":\"none\",\"link_lsa_cnt\":0,\"link_lsa_crc\":0,\"state_chg_cnt\":2},{\"ifname\":\"loopback0\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"3.1.3.3\",\"masklen\":32,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"LOOPBACK\",\"type_str\":\"LOOPBACK\",\"cost\":1,\"index\":1},{\"ifname\":\"Vlan10\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"10.1.13.1\",\"masklen\":24,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"DR\",\"type_str\":\"BROADCAST\",\"cost\":40,\"index\":3,\"transmit_delay\":1,\"if_priority\":1,\"dr_rid\":\"3.1.3.3\",\"dr_addr\":\"10.1.13.1\",\"nbr_total\":0,\"nbr_flood\":0,\"nbr_adjs\":0,\"hello_interval\":10,\"dead_interval\":40,\"wait_interval\":40,\"rxmt_interval\":5,\"hello_timer\":\"PT7S\",\"auth_type\":\"none\",\"link_lsa_cnt\":0,\"link_lsa_crc\":0,\"state_chg_cnt\":2}]}}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060469139, + "cmd_timestamp": 1702060467626, + "cmd": "show ip ospf vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"instance_number\":1,\"cname\":\"default\",\"rid\":\"3.1.3.3\",\"stateful_ha\":\"true\",\"gr_ha\":\"true\",\"gr_planned_only\":\"true\",\"gr_grace_period\":\"PT60S\",\"gr_state\":\"inactive\",\"gr_last_status\":\"None\",\"support_tos0_only\":\"true\",\"support_opaque_lsa\":\"true\",\"is_abr\":\"false\",\"is_asbr\":\"false\",\"admin_dist\":110,\"ref_bw\":40000,\"spf_start_time\":\"PT0S\",\"spf_hold_time\":\"PT1S\",\"spf_max_time\":\"PT5S\",\"lsa_start_time\":\"PT0S\",\"lsa_hold_time\":\"PT5S\",\"lsa_max_time\":\"PT5S\",\"min_lsa_arr_time\":\"PT1S\",\"lsa_aging_pace\":10,\"spf_max_paths\":8,\"max_metric_adver\":\"false\",\"asext_lsa_cnt\":0,\"asext_lsa_crc\":\"0\",\"asopaque_lsa_cnt\":0,\"asopaque_lsa_crc\":\"0\",\"area_total\":1,\"area_normal\":1,\"area_stub\":0,\"area_nssa\":0,\"act_area_total\":1,\"act_area_normal\":1,\"act_area_stub\":0,\"act_area_nssa\":0,\"no_discard_rt_ext\":\"false\",\"no_discard_rt_int\":\"false\",\"num_new_lsa_tx\":4,\"num_new_lsa_rx\":2688,\"TABLE_area\":{\"ROW_area\":[{\"aname\":\"0.0.0.0\",\"backbone_active\":\"true\",\"age\":\"P18DT20H32M15S\",\"total_intf\":3,\"act_intf\":3,\"passive_intf\":0,\"loopback_intf\":1,\"stub\":\"false\",\"nssa\":\"false\",\"no_summary\":\"false\",\"auth_type\":\"none\",\"spf_runs\":6,\"last_spf_run_time\":\"PT0S\",\"TABLE_range\":{\"ROW_range\":[{\"addr\":\"3.1.3.3\",\"masklen\":32,\"state\":\"active\",\"nets\":1,\"advertise\":\"advertise\"},{\"addr\":\"10.1.0.0\",\"masklen\":16,\"state\":\"active\",\"nets\":4,\"advertise\":\"advertise\"}]},\"lsa_cnt\":5,\"lsa_crc\":\"0x2c3e5\"}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467760, + "cmd_timestamp": 1702060466081, + "cmd": "show ip ospf interface vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"cname\":\"default\",\"TABLE_intf\":{\"ROW_intf\":[{\"ifname\":\"Ethernet1/1\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"10.1.1.2\",\"masklen\":30,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"BDR\",\"type_str\":\"BROADCAST\",\"cost\":40,\"index\":2,\"transmit_delay\":1,\"if_priority\":1,\"dr_rid\":\"2.1.2.2\",\"dr_addr\":\"10.1.1.1\",\"bdr_rid\":\"1.1.1.1\",\"bdr_addr\":\"10.1.1.2\",\"nbr_total\":1,\"nbr_flood\":1,\"nbr_adjs\":1,\"hello_interval\":10,\"dead_interval\":40,\"wait_interval\":40,\"rxmt_interval\":5,\"hello_timer\":\"PT6S\",\"auth_type\":\"none\",\"link_lsa_cnt\":0,\"link_lsa_crc\":0,\"state_chg_cnt\":2},{\"ifname\":\"Ethernet1/3\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"10.1.11.1\",\"masklen\":24,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"DR\",\"type_str\":\"BROADCAST\",\"cost\":40,\"index\":3,\"transmit_delay\":1,\"if_priority\":1,\"dr_rid\":\"1.1.1.1\",\"dr_addr\":\"10.1.11.1\",\"nbr_total\":0,\"nbr_flood\":0,\"nbr_adjs\":0,\"hello_interval\":10,\"dead_interval\":40,\"wait_interval\":40,\"rxmt_interval\":5,\"hello_timer\":\"PT0S\",\"auth_type\":\"none\",\"link_lsa_cnt\":0,\"link_lsa_crc\":0,\"state_chg_cnt\":2},{\"ifname\":\"loopback0\",\"admin_status\":\"up\",\"proto_status\":\"up\",\"addr\":\"1.1.1.1\",\"masklen\":32,\"area\":\"0.0.0.0\",\"if_cfg\":\"true\",\"state_str\":\"LOOPBACK\",\"type_str\":\"LOOPBACK\",\"cost\":1,\"index\":1}]}}]}}\n" + }, + { + "status": 0, + "timestamp": 1702060469387, + "cmd_timestamp": 1702060467760, + "cmd": "show ip ospf vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"instance_number\":1,\"cname\":\"default\",\"rid\":\"1.1.1.1\",\"stateful_ha\":\"true\",\"gr_ha\":\"true\",\"gr_planned_only\":\"true\",\"gr_grace_period\":\"PT60S\",\"gr_state\":\"inactive\",\"gr_last_status\":\"None\",\"support_tos0_only\":\"true\",\"support_opaque_lsa\":\"true\",\"is_abr\":\"false\",\"is_asbr\":\"false\",\"admin_dist\":110,\"ref_bw\":40000,\"spf_start_time\":\"PT0S\",\"spf_hold_time\":\"PT1S\",\"spf_max_time\":\"PT5S\",\"lsa_start_time\":\"PT0S\",\"lsa_hold_time\":\"PT5S\",\"lsa_max_time\":\"PT5S\",\"min_lsa_arr_time\":\"PT1S\",\"lsa_aging_pace\":10,\"spf_max_paths\":8,\"max_metric_adver\":\"false\",\"asext_lsa_cnt\":0,\"asext_lsa_crc\":\"0\",\"asopaque_lsa_cnt\":0,\"asopaque_lsa_crc\":\"0\",\"area_total\":1,\"area_normal\":1,\"area_stub\":0,\"area_nssa\":0,\"act_area_total\":1,\"act_area_normal\":1,\"act_area_stub\":0,\"act_area_nssa\":0,\"no_discard_rt_ext\":\"false\",\"no_discard_rt_int\":\"false\",\"num_new_lsa_tx\":2,\"num_new_lsa_rx\":3580,\"TABLE_area\":{\"ROW_area\":[{\"aname\":\"0.0.0.0\",\"backbone_active\":\"true\",\"age\":\"P18DT20H31M46S\",\"total_intf\":3,\"act_intf\":3,\"passive_intf\":0,\"loopback_intf\":1,\"stub\":\"false\",\"nssa\":\"false\",\"no_summary\":\"false\",\"auth_type\":\"none\",\"spf_runs\":2,\"last_spf_run_time\":\"PT0S\",\"TABLE_range\":{\"ROW_range\":[{\"addr\":\"1.1.1.1\",\"masklen\":32,\"state\":\"active\",\"nets\":1,\"advertise\":\"advertise\"},{\"addr\":\"10.1.0.0\",\"masklen\":16,\"state\":\"active\",\"nets\":4,\"advertise\":\"advertise\"}]},\"lsa_cnt\":5,\"lsa_crc\":\"0x2c3e5\"}]}}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/ospfNbr.output b/tests/integration/sqcmds/multicast-input/ospfNbr.output new file mode 100644 index 0000000000..44465667c8 --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/ospfNbr.output @@ -0,0 +1,79 @@ +[ + { + "status": 0, + "timestamp": 1702060465828, + "cmd_timestamp": 1702060465090, + "cmd": "show ip ospf neighbor detail vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"ospfNeighborEntries\": [\n {\n \"routerId\": \"2.2.2.2\",\n \"interfaceAddress\": \"10.2.2.1\",\n \"interfaceName\": \"Ethernet1\",\n \"priority\": 1,\n \"adjacencyState\": \"full\",\n \"drState\": \"BDR\",\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": true,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"inactivity\": 1702060500.729541,\n \"details\": {\n \"areaId\": \"0.0.0.0\",\n \"designatedRouter\": \"10.2.2.2\",\n \"backupDesignatedRouter\": \"10.2.2.1\",\n \"numberOfStateChanges\": 6,\n \"stateTime\": 1700446292.729572,\n \"inactivityDefers\": 0,\n \"retransmissionCount\": 1,\n \"bfdState\": \"adminDown\",\n \"bfdRequestSent\": false,\n \"grHelperTimer\": null,\n \"grNumAttempts\": 0,\n \"grLastRestartTime\": null\n }\n }\n ]\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060466003, + "cmd_timestamp": 1702060465497, + "cmd": "show ip ospf neighbor detail vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"ospfNeighborEntries\": [\n {\n \"routerId\": \"2.2.2.2\",\n \"interfaceAddress\": \"10.2.1.1\",\n \"interfaceName\": \"Ethernet1\",\n \"priority\": 1,\n \"adjacencyState\": \"full\",\n \"drState\": \"DR\",\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": true,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"inactivity\": 1702060500.926959,\n \"details\": {\n \"areaId\": \"0.0.0.0\",\n \"designatedRouter\": \"10.2.1.1\",\n \"backupDesignatedRouter\": \"10.2.1.2\",\n \"numberOfStateChanges\": 7,\n \"stateTime\": 1700447613.927001,\n \"inactivityDefers\": 0,\n \"retransmissionCount\": 1,\n \"bfdState\": \"adminDown\",\n \"bfdRequestSent\": false,\n \"grHelperTimer\": null,\n \"grNumAttempts\": 0,\n \"grLastRestartTime\": null\n }\n }\n ]\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060466155, + "cmd_timestamp": 1702060465793, + "cmd": "show ip ospf neighbor detail vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"instList\": {\n \"1\": {\n \"ospfNeighborEntries\": [\n {\n \"routerId\": \"1.2.1.1\",\n \"interfaceAddress\": \"10.2.1.2\",\n \"interfaceName\": \"Ethernet1\",\n \"priority\": 1,\n \"adjacencyState\": \"full\",\n \"drState\": \"BDR\",\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": true,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"inactivity\": 1702060497.093136,\n \"details\": {\n \"areaId\": \"0.0.0.0\",\n \"designatedRouter\": \"10.2.1.1\",\n \"backupDesignatedRouter\": \"10.2.1.2\",\n \"numberOfStateChanges\": 6,\n \"stateTime\": 1700447613.093165,\n \"inactivityDefers\": 0,\n \"retransmissionCount\": 1,\n \"bfdState\": \"adminDown\",\n \"bfdRequestSent\": false,\n \"grHelperTimer\": null,\n \"grNumAttempts\": 0,\n \"grLastRestartTime\": null\n }\n },\n {\n \"routerId\": \"3.2.3.3\",\n \"interfaceAddress\": \"10.2.2.2\",\n \"interfaceName\": \"Ethernet2\",\n \"priority\": 1,\n \"adjacencyState\": \"full\",\n \"drState\": \"DR\",\n \"options\": {\n \"multitopologyCapability\": false,\n \"externalRoutingCapability\": true,\n \"multicastCapability\": false,\n \"nssaCapability\": false,\n \"linkLocalSignaling\": false,\n \"demandCircuitsSupport\": false,\n \"opaqueLsaSupport\": false,\n \"doNotUseInRouteCalc\": false\n },\n \"inactivity\": 1702060502.093576,\n \"details\": {\n \"areaId\": \"0.0.0.0\",\n \"designatedRouter\": \"10.2.2.2\",\n \"backupDesignatedRouter\": \"10.2.2.1\",\n \"numberOfStateChanges\": 7,\n \"stateTime\": 1700446293.093597,\n \"inactivityDefers\": 0,\n \"retransmissionCount\": 1,\n \"bfdState\": \"adminDown\",\n \"bfdRequestSent\": false,\n \"grHelperTimer\": null,\n \"grNumAttempts\": 0,\n \"grLastRestartTime\": null\n }\n }\n ]\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060470659, + "cmd_timestamp": 1702060469572, + "cmd": "show ip ospf neighbor detail vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"cname\":\"default\",\"TABLE_nbr\":{\"ROW_nbr\":[{\"rid\":\"1.1.1.1\",\"addr\":\"10.1.1.2\",\"area\":\"0.0.0.0\",\"intf\":\"Ethernet1/1\",\"state\":\"FULL\",\"transition\":4,\"lastchange\":\"P18DT20H31M7S\",\"priority\":1,\"dr\":\"10.1.1.1\",\"bdr\":\"10.1.1.2\",\"helloptions\":\"0x2\",\"dbdoptions\":\"0x42\",\"lastnonhello\":\"P18DT20H13M12S\",\"deadtimer\":\"PT37S\"},{\"rid\":\"3.1.3.3\",\"addr\":\"10.1.2.2\",\"area\":\"0.0.0.0\",\"intf\":\"Ethernet1/2\",\"state\":\"FULL\",\"transition\":5,\"lastchange\":\"P18DT20H31M36S\",\"priority\":1,\"dr\":\"10.1.2.2\",\"bdr\":\"10.1.2.1\",\"helloptions\":\"0x2\",\"dbdoptions\":\"0x42\",\"lastnonhello\":\"P18DT20H13M14S\",\"deadtimer\":\"PT37S\"}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060472941, + "cmd_timestamp": 1702060472098, + "cmd": "show ip ospf neighbor detail vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"cname\":\"default\",\"TABLE_nbr\":{\"ROW_nbr\":[{\"rid\":\"2.1.2.2\",\"addr\":\"10.1.1.1\",\"area\":\"0.0.0.0\",\"intf\":\"Ethernet1/1\",\"state\":\"FULL\",\"transition\":6,\"lastchange\":\"P18DT20H31M10S\",\"priority\":1,\"dr\":\"10.1.1.1\",\"bdr\":\"10.1.1.2\",\"helloptions\":\"0x2\",\"dbdoptions\":\"0x42\",\"lastnonhello\":\"P18DT20H13M5S\",\"deadtimer\":\"PT34S\"}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060473072, + "cmd_timestamp": 1702060471684, + "cmd": "show ip ospf neighbor detail vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_ctx\":{\"ROW_ctx\":[{\"ptag\":\"1\",\"cname\":\"default\",\"TABLE_nbr\":{\"ROW_nbr\":[{\"rid\":\"2.1.2.2\",\"addr\":\"10.1.2.1\",\"area\":\"0.0.0.0\",\"intf\":\"Ethernet1/1\",\"state\":\"FULL\",\"transition\":5,\"lastchange\":\"P18DT20H31M39S\",\"priority\":1,\"dr\":\"10.1.2.2\",\"bdr\":\"10.1.2.1\",\"helloptions\":\"0x2\",\"dbdoptions\":\"0x42\",\"lastnonhello\":\"P18DT20H13M8S\",\"deadtimer\":\"PT34S\"}]}}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/routes.output b/tests/integration/sqcmds/multicast-input/routes.output new file mode 100644 index 0000000000..117b5f41de --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/routes.output @@ -0,0 +1,79 @@ +[ + { + "status": 0, + "timestamp": 1702060463667, + "cmd_timestamp": 1702060463287, + "cmd": "show ip route vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"routingDisabled\": false,\n \"allRoutesProgrammedHardware\": true,\n \"allRoutesProgrammedKernel\": true,\n \"defaultRouteState\": \"notSet\",\n \"routes\": {\n \"1.2.1.1/32\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Loopback0\"\n }\n ],\n \"directlyConnected\": true\n },\n \"2.2.2.2/32\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 20,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.1.1\",\n \"interface\": \"Ethernet1\"\n }\n ]\n },\n \"3.2.3.3/32\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 30,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.1.1\",\n \"interface\": \"Ethernet1\"\n }\n ]\n },\n \"10.2.1.0/30\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Ethernet1\"\n }\n ],\n \"directlyConnected\": true\n },\n \"10.2.2.0/30\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 20,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.1.1\",\n \"interface\": \"Ethernet1\"\n }\n ]\n },\n \"10.2.11.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Ethernet3\"\n }\n ],\n \"directlyConnected\": true\n },\n \"10.2.13.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 30,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.1.1\",\n \"interface\": \"Ethernet1\"\n }\n ]\n },\n \"172.20.20.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Management0\"\n }\n ],\n \"directlyConnected\": true\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464060, + "cmd_timestamp": 1702060463420, + "cmd": "show ip route vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"routingDisabled\": false,\n \"allRoutesProgrammedHardware\": true,\n \"allRoutesProgrammedKernel\": true,\n \"defaultRouteState\": \"notSet\",\n \"routes\": {\n \"2.2.2.2/32\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Loopback0\"\n }\n ],\n \"directlyConnected\": true\n },\n \"3.2.3.3/32\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 20,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.2.2\",\n \"interface\": \"Ethernet2\"\n }\n ]\n },\n \"10.2.1.0/30\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Ethernet1\"\n }\n ],\n \"directlyConnected\": true\n },\n \"10.2.2.0/30\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Ethernet2\"\n }\n ],\n \"directlyConnected\": true\n },\n \"10.2.11.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 20,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.1.2\",\n \"interface\": \"Ethernet1\"\n }\n ]\n },\n \"10.2.13.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 20,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.2.2\",\n \"interface\": \"Ethernet2\"\n }\n ]\n },\n \"172.20.20.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Management0\"\n }\n ],\n \"directlyConnected\": true\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464062, + "cmd_timestamp": 1702060463269, + "cmd": "show ip route vrf all| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vrfs\": {\n \"default\": {\n \"routingDisabled\": false,\n \"allRoutesProgrammedHardware\": true,\n \"allRoutesProgrammedKernel\": true,\n \"defaultRouteState\": \"notSet\",\n \"routes\": {\n \"2.2.2.2/32\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 20,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.2.1\",\n \"interface\": \"Ethernet1\"\n }\n ]\n },\n \"3.2.3.3/32\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Loopback0\"\n }\n ],\n \"directlyConnected\": true\n },\n \"10.2.1.0/30\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 20,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.2.1\",\n \"interface\": \"Ethernet1\"\n }\n ]\n },\n \"10.2.2.0/30\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Ethernet1\"\n }\n ],\n \"directlyConnected\": true\n },\n \"10.2.11.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"OSPF\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"directlyConnected\": false,\n \"preference\": 110,\n \"metric\": 30,\n \"vias\": [\n {\n \"nexthopAddr\": \"10.2.2.1\",\n \"interface\": \"Ethernet1\"\n }\n ]\n },\n \"10.2.13.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Ethernet3\"\n }\n ],\n \"directlyConnected\": true\n },\n \"172.20.20.0/24\": {\n \"hardwareProgrammed\": true,\n \"routeType\": \"connected\",\n \"routeLeaked\": false,\n \"kernelProgrammed\": true,\n \"routeAction\": \"forward\",\n \"vias\": [\n {\n \"interface\": \"Management0\"\n }\n ],\n \"directlyConnected\": true\n }\n }\n }\n }\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467129, + "cmd_timestamp": 1702060465466, + "cmd": "show ip route vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"default\",\"TABLE_addrf\":{\"ROW_addrf\":[{\"addrf\":\"ipv4\",\"TABLE_prefix\":{\"ROW_prefix\":[{\"ipprefix\":\"1.1.1.1/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H30M59S\",\"pref\":110,\"metric\":81,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"2.1.2.2/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H31M27S\",\"pref\":110,\"metric\":41,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"3.1.3.3/32\",\"ucast-nhops\":2,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"3.1.3.3\",\"ifname\":\"Lo0\",\"uptime\":\"P18DT20H32M17S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"},{\"ipnexthop\":\"3.1.3.3\",\"ifname\":\"Lo0\",\"uptime\":\"P18DT20H32M16S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.1.0/30\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H31M27S\",\"pref\":110,\"metric\":80,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.2.0/30\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.2\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H32M15S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.2.2/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.2\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H32M15S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.11.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H30M59S\",\"pref\":110,\"metric\":120,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.13.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.13.1\",\"ifname\":\"Vlan10\",\"uptime\":\"P18DT20H31M45S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.13.1/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.13.1\",\"ifname\":\"Vlan10\",\"uptime\":\"P18DT20H31M45S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}}]}}]}},{\"vrf-name-out\":\"management\",\"TABLE_addrf\":{\"ROW_addrf\":[{\"addrf\":\"ipv4\",\"TABLE_prefix\":{\"ROW_prefix\":[{\"ipprefix\":\"10.0.0.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.0.0.15\",\"ifname\":\"mgmt0\",\"uptime\":\"P18DT20H32M36S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.0.0.15/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.0.0.15\",\"ifname\":\"mgmt0\",\"uptime\":\"P18DT20H32M36S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}}]}}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467129, + "cmd_timestamp": 1702060465756, + "cmd": "show ip route vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"default\",\"TABLE_addrf\":{\"ROW_addrf\":[{\"addrf\":\"ipv4\",\"TABLE_prefix\":{\"ROW_prefix\":[{\"ipprefix\":\"1.1.1.1/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.2\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H30M58S\",\"pref\":110,\"metric\":41,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"2.1.2.2/32\",\"ucast-nhops\":2,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"2.1.2.2\",\"ifname\":\"Lo0\",\"uptime\":\"P18DT20H32M21S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"},{\"ipnexthop\":\"2.1.2.2\",\"ifname\":\"Lo0\",\"uptime\":\"P18DT20H32M21S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"3.1.3.3/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.2\",\"ifname\":\"Eth1/2\",\"uptime\":\"P18DT20H31M27S\",\"pref\":110,\"metric\":41,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.1.0/30\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H32M20S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.1.1/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H32M20S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.2.0/30\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.1\",\"ifname\":\"Eth1/2\",\"uptime\":\"P18DT20H32M20S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.2.1/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.1\",\"ifname\":\"Eth1/2\",\"uptime\":\"P18DT20H32M20S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.11.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.2\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H30M58S\",\"pref\":110,\"metric\":80,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.13.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.2.2\",\"ifname\":\"Eth1/2\",\"uptime\":\"P18DT20H31M27S\",\"pref\":110,\"metric\":80,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}}]}}]}},{\"vrf-name-out\":\"management\",\"TABLE_addrf\":{\"ROW_addrf\":[{\"addrf\":\"ipv4\",\"TABLE_prefix\":{\"ROW_prefix\":[{\"ipprefix\":\"10.0.0.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.0.0.15\",\"ifname\":\"mgmt0\",\"uptime\":\"P18DT20H32M38S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.0.0.15/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.0.0.15\",\"ifname\":\"mgmt0\",\"uptime\":\"P18DT20H32M38S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}}]}}]}}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467622, + "cmd_timestamp": 1702060465875, + "cmd": "show ip route vrf all | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_vrf\":{\"ROW_vrf\":[{\"vrf-name-out\":\"default\",\"TABLE_addrf\":{\"ROW_addrf\":[{\"addrf\":\"ipv4\",\"TABLE_prefix\":{\"ROW_prefix\":[{\"ipprefix\":\"1.1.1.1/32\",\"ucast-nhops\":2,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"1.1.1.1\",\"ifname\":\"Lo0\",\"uptime\":\"P18DT20H31M48S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"},{\"ipnexthop\":\"1.1.1.1\",\"ifname\":\"Lo0\",\"uptime\":\"P18DT20H31M48S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"2.1.2.2/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H31M5S\",\"pref\":110,\"metric\":41,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"3.1.3.3/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H31M5S\",\"pref\":110,\"metric\":81,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.1.0/30\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.2\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H31M47S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.1.2/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.2\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H31M47S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.2.0/30\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H31M5S\",\"pref\":110,\"metric\":80,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.11.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.11.1\",\"ifname\":\"Eth1/3\",\"uptime\":\"P18DT20H31M46S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.11.1/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.11.1\",\"ifname\":\"Eth1/3\",\"uptime\":\"P18DT20H31M46S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.1.13.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"false\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.1.1.1\",\"ifname\":\"Eth1/1\",\"uptime\":\"P18DT20H31M5S\",\"pref\":110,\"metric\":120,\"clientname\":\"ospf-1\",\"type\":\"intra\",\"ubest\":\"true\"}]}}]}}]}},{\"vrf-name-out\":\"management\",\"TABLE_addrf\":{\"ROW_addrf\":[{\"addrf\":\"ipv4\",\"TABLE_prefix\":{\"ROW_prefix\":[{\"ipprefix\":\"10.0.0.0/24\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.0.0.15\",\"ifname\":\"mgmt0\",\"uptime\":\"P18DT20H32M6S\",\"pref\":0,\"metric\":0,\"clientname\":\"direct\",\"ubest\":\"true\"}]}},{\"ipprefix\":\"10.0.0.15/32\",\"ucast-nhops\":1,\"mcast-nhops\":0,\"attached\":\"true\",\"TABLE_path\":{\"ROW_path\":[{\"ipnexthop\":\"10.0.0.15\",\"ifname\":\"mgmt0\",\"uptime\":\"P18DT20H32M6S\",\"pref\":0,\"metric\":0,\"clientname\":\"local\",\"ubest\":\"true\"}]}}]}}]}}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/time.output b/tests/integration/sqcmds/multicast-input/time.output new file mode 100644 index 0000000000..b0b9809c4c --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/time.output @@ -0,0 +1,79 @@ +[ + { + "status": 0, + "timestamp": 1702060463268, + "cmd_timestamp": 1702060462966, + "cmd": "show clock", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "Fri Dec 8 18:34:23 2023\nTimezone: UTC\nClock source: local\n" + } +][ + { + "status": 0, + "timestamp": 1702060463957, + "cmd_timestamp": 1702060463065, + "cmd": "show clock", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "Fri Dec 8 18:34:23 2023\nTimezone: UTC\nClock source: local\n" + } +][ + { + "status": 0, + "timestamp": 1702060464044, + "cmd_timestamp": 1702060463210, + "cmd": "show clock", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "Fri Dec 8 18:34:23 2023\nTimezone: UTC\nClock source: local\n" + } +][ + { + "status": 0, + "timestamp": 1702060465569, + "cmd_timestamp": 1702060464038, + "cmd": "show clock", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "Warning: No NTP peer/server configured. Time may be out of sync.\n17:41:46.138 UTC Fri Dec 08 2023\nTime source is NTP\n" + } +][ + { + "status": 0, + "timestamp": 1702060465760, + "cmd_timestamp": 1702060463912, + "cmd": "show clock", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "Warning: No NTP peer/server configured. Time may be out of sync.\n17:42:08.774 UTC Fri Dec 08 2023\nTime source is NTP\n" + } +][ + { + "status": 0, + "timestamp": 1702060466080, + "cmd_timestamp": 1702060464294, + "cmd": "show clock", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "Warning: No NTP peer/server configured. Time may be out of sync.\n17:41:40.462 UTC Fri Dec 08 2023\nTime source is NTP\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-input/vlan.output b/tests/integration/sqcmds/multicast-input/vlan.output new file mode 100644 index 0000000000..3c4820cf6b --- /dev/null +++ b/tests/integration/sqcmds/multicast-input/vlan.output @@ -0,0 +1,79 @@ +[ + { + "status": 0, + "timestamp": 1702060464364, + "cmd_timestamp": 1702060463688, + "cmd": "show vlan brief| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-3", + "address": "172.20.20.12", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vlans\": {\n \"1\": {\n \"name\": \"default\",\n \"dynamic\": false,\n \"status\": \"active\",\n \"interfaces\": {}\n }\n },\n \"sourceDetail\": \"\"\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464475, + "cmd_timestamp": 1702060464062, + "cmd": "show vlan brief| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-2", + "address": "172.20.20.10", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vlans\": {\n \"1\": {\n \"name\": \"default\",\n \"dynamic\": false,\n \"status\": \"active\",\n \"interfaces\": {}\n }\n },\n \"sourceDetail\": \"\"\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060464585, + "cmd_timestamp": 1702060463726, + "cmd": "show vlan brief| json", + "devtype": "eos", + "namespace": "multicast", + "hostname": "ceos-1", + "address": "172.20.20.8", + "version": "4.29.5M-33599604.4295M (engineering build)", + "data": "{\n \"vlans\": {\n \"1\": {\n \"name\": \"default\",\n \"dynamic\": false,\n \"status\": \"active\",\n \"interfaces\": {}\n }\n },\n \"sourceDetail\": \"\"\n}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467217, + "cmd_timestamp": 1702060465858, + "cmd": "show vlan brief | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-2", + "address": "172.20.20.2", + "version": "9.3(10)", + "data": "{\"TABLE_vlanbriefxbrief\":{\"ROW_vlanbriefxbrief\":[{\"vlanshowbr-vlanid\":1,\"vlanshowbr-vlanid-utf\":1,\"vlanshowbr-vlanname\":\"default\",\"vlanshowbr-vlanstate\":\"active\",\"vlanshowbr-shutstate\":\"noshutdown\",\"vlanshowplist-ifidx\":\"Ethernet1/3,Ethernet1/4,Ethernet1/5,Ethernet1/6,Ethernet1/7,Ethernet1/8,Ethernet1/9,Ethernet1/10,Ethernet1/11,Ethernet1/12,Ethernet1/13,Ethernet1/14,Ethernet1/15,Ethernet1/16,Ethernet1/17,Ethernet1/18,Ethernet1/19,Ethernet1/20,Ethernet1/21,Ethernet1/22,Ethernet1/23,Ethernet1/24,Ethernet1/25,Ethernet1/26,Ethernet1/27,Ethernet1/28,Ethernet1/29,Ethernet1/30,Ethernet1/31,Ethernet1/32,Ethernet1/33,Ethernet1/34,Ethernet1/35,Ethernet1/36,Ethernet1/37,Ethernet1/38,Ethernet1/39,Ethernet1/40,Ethernet1/41,Ethernet1/42,Ethernet1/43,Ethernet1/44,Ethernet1/45,Ethernet1/46,Ethernet1/47,Ethernet1/48,Ethernet1/49,Ethernet1/50,Ethernet1/51,Ethernet1/52,Ethernet1/53,Ethernet1/54,Ethernet1/55,Ethernet1/56,Ethernet1/57,Ethernet1/58,Ethernet1/59,Ethernet1/60,Ethernet1/61,Ethernet1/62,Ethernet1/63,Ethernet1/64\"}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467356, + "cmd_timestamp": 1702060465570, + "cmd": "show vlan brief | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-3", + "address": "172.20.20.6", + "version": "9.3(10)", + "data": "{\"TABLE_vlanbriefxbrief\":{\"ROW_vlanbriefxbrief\":[{\"vlanshowbr-vlanid\":1,\"vlanshowbr-vlanid-utf\":1,\"vlanshowbr-vlanname\":\"default\",\"vlanshowbr-vlanstate\":\"active\",\"vlanshowbr-shutstate\":\"noshutdown\",\"vlanshowplist-ifidx\":\"Ethernet1/2,Ethernet1/4,Ethernet1/5,Ethernet1/6,Ethernet1/7,Ethernet1/8,Ethernet1/9,Ethernet1/10,Ethernet1/11,Ethernet1/12,Ethernet1/13,Ethernet1/14,Ethernet1/15,Ethernet1/16,Ethernet1/17,Ethernet1/18,Ethernet1/19,Ethernet1/20,Ethernet1/21,Ethernet1/22,Ethernet1/23,Ethernet1/24,Ethernet1/25,Ethernet1/26,Ethernet1/27,Ethernet1/28,Ethernet1/29,Ethernet1/30,Ethernet1/31,Ethernet1/32,Ethernet1/33,Ethernet1/34,Ethernet1/35,Ethernet1/36,Ethernet1/37,Ethernet1/38,Ethernet1/39,Ethernet1/40,Ethernet1/41,Ethernet1/42,Ethernet1/43,Ethernet1/44,Ethernet1/45,Ethernet1/46,Ethernet1/47,Ethernet1/48,Ethernet1/49,Ethernet1/50,Ethernet1/51,Ethernet1/52,Ethernet1/53,Ethernet1/54,Ethernet1/55,Ethernet1/56,Ethernet1/57,Ethernet1/58,Ethernet1/59,Ethernet1/60,Ethernet1/61,Ethernet1/62,Ethernet1/63,Ethernet1/64\"},{\"vlanshowbr-vlanid\":10,\"vlanshowbr-vlanid-utf\":10,\"vlanshowbr-vlanname\":\"VLAN0010\",\"vlanshowbr-vlanstate\":\"active\",\"vlanshowbr-shutstate\":\"noshutdown\",\"vlanshowplist-ifidx\":\"Ethernet1/3\"}]}}\n" + } +][ + { + "status": 0, + "timestamp": 1702060467871, + "cmd_timestamp": 1702060466243, + "cmd": "show vlan brief | json native", + "devtype": "nxos", + "namespace": "multicast", + "hostname": "nxos-1", + "address": "172.20.20.3", + "version": "9.3(10)", + "data": "{\"TABLE_vlanbriefxbrief\":{\"ROW_vlanbriefxbrief\":[{\"vlanshowbr-vlanid\":1,\"vlanshowbr-vlanid-utf\":1,\"vlanshowbr-vlanname\":\"default\",\"vlanshowbr-vlanstate\":\"active\",\"vlanshowbr-shutstate\":\"noshutdown\",\"vlanshowplist-ifidx\":\"Ethernet1/2,Ethernet1/4,Ethernet1/5,Ethernet1/6,Ethernet1/7,Ethernet1/8,Ethernet1/9,Ethernet1/10,Ethernet1/11,Ethernet1/12,Ethernet1/13,Ethernet1/14,Ethernet1/15,Ethernet1/16,Ethernet1/17,Ethernet1/18,Ethernet1/19,Ethernet1/20,Ethernet1/21,Ethernet1/22,Ethernet1/23,Ethernet1/24,Ethernet1/25,Ethernet1/26,Ethernet1/27,Ethernet1/28,Ethernet1/29,Ethernet1/30,Ethernet1/31,Ethernet1/32,Ethernet1/33,Ethernet1/34,Ethernet1/35,Ethernet1/36,Ethernet1/37,Ethernet1/38,Ethernet1/39,Ethernet1/40,Ethernet1/41,Ethernet1/42,Ethernet1/43,Ethernet1/44,Ethernet1/45,Ethernet1/46,Ethernet1/47,Ethernet1/48,Ethernet1/49,Ethernet1/50,Ethernet1/51,Ethernet1/52,Ethernet1/53,Ethernet1/54,Ethernet1/55,Ethernet1/56,Ethernet1/57,Ethernet1/58,Ethernet1/59,Ethernet1/60,Ethernet1/61,Ethernet1/62,Ethernet1/63,Ethernet1/64\"}]}}\n" + } +] \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-samples/igmp.yml b/tests/integration/sqcmds/multicast-samples/igmp.yml new file mode 100644 index 0000000000..63544fdd30 --- /dev/null +++ b/tests/integration/sqcmds/multicast-samples/igmp.yml @@ -0,0 +1,10 @@ +description: 'Testing verbs for igmp' +tests: +- command: igmp show + data-directory: tests/data/parquet// + marks: multicast igmp + output: '[]' +- command: igmp summarize + data-directory: tests/data/parquet// + marks: multicast igmp + output: '[]' \ No newline at end of file diff --git a/tests/integration/sqcmds/multicast-samples/mroute.yml b/tests/integration/sqcmds/multicast-samples/mroute.yml new file mode 100644 index 0000000000..7c197cb505 --- /dev/null +++ b/tests/integration/sqcmds/multicast-samples/mroute.yml @@ -0,0 +1,10 @@ +description: 'Testing verbs for mroutes' +tests: +- command: mroute show + data-directory: tests/data/parquet// + marks: multicast mroute + output: '[]' +- command: mroute summarize + data-directory: tests/data/parquet// + marks: multicast mroute + output: '[]' \ No newline at end of file diff --git a/tests/integration/test_parsing_igmp.py b/tests/integration/test_parsing_igmp.py new file mode 100644 index 0000000000..aa0b510c61 --- /dev/null +++ b/tests/integration/test_parsing_igmp.py @@ -0,0 +1,32 @@ +from ipaddress import ip_network, ip_address + +import pytest + +import pandas as pd +from tests.conftest import DATADIR, validate_host_shape + + +def validate_igmp(df: pd.DataFrame): + """Validate the routes table for all values""" + + assert (df.vrf != "").all() + assert (df.group != "").all() + + +@pytest.mark.parsing +@pytest.mark.igmp +@pytest.mark.parametrize("table", ["igmp"]) +@pytest.mark.parametrize("datadir", DATADIR) +# pylint: disable=unused-argument +def test_igmp_parsing(table, datadir, get_table_data): + """Main workhorse routine to test parsed output for igmp""" + + df = get_table_data + + ns_dict = { + "multicast": 2, + } + + assert not df.empty + validate_host_shape(df, ns_dict) + validate_igmp(df) diff --git a/tests/integration/test_parsing_mroutes.py b/tests/integration/test_parsing_mroutes.py new file mode 100644 index 0000000000..a00f00687f --- /dev/null +++ b/tests/integration/test_parsing_mroutes.py @@ -0,0 +1,32 @@ +from ipaddress import ip_network, ip_address + +import pytest + +import pandas as pd +from tests.conftest import DATADIR, validate_host_shape + + +def validate_mroutes(df: pd.DataFrame): + """Validate the routes table for all values""" + + # assert (df.vrf != '').all() + + assert (df.group != "").all() + assert (df.source != "").all() + + +@pytest.mark.parsing +@pytest.mark.mroutes +@pytest.mark.parametrize("table", ["mroutes"]) +@pytest.mark.parametrize("datadir", DATADIR) +# pylint: disable=unused-argument +def test_mroutes_parsing(table, datadir, get_table_data): + """Main workhorse routine to test parsed output for mRoutes""" + + df = get_table_data + + ns_dict = {"multicast": 6} + + assert not df.empty + validate_host_shape(df, ns_dict) + validate_mroutes(df) diff --git a/tests/integration/test_rest.py b/tests/integration/test_rest.py index 3ada715744..da9047fab6 100644 --- a/tests/integration/test_rest.py +++ b/tests/integration/test_rest.py @@ -233,6 +233,20 @@ 'inventory/summarize?namespace=ospf-ibgp&namespace=ospf-single', 'inventory/summarize?type=ethernet', 'inventory/summarize?query_str=hostname%20==%20"leaf01"', + 'mroute/show?hostname=leaf01', + 'mroute/show?hostname=leaf01', + 'mroute/show?namespace=ospf-ibgp', + 'mroute/show?hostname=leaf01&hostname=spine01', + 'mroute/show?namespace=ospf-ibgp&namespace=ospf-single', + 'mroute/show?type=ethernet', + 'mroute/show?query_str=hostname%20==%20"leaf01"', + 'mroute/summarize?hostname=leaf01', + 'mroute/summarize?namespace=ospf-ibgp', + 'mroute/summarize?hostname=leaf01&hostname=spine01', + 'mroute/summarize?namespace=ospf-ibgp&namespace=ospf-single', + 'mroute/summarize?type=ethernet', + 'mroute/summarize?query_str=hostname%20==%20"leaf01"', + ] GOOD_SERVICE_VERBS = { diff --git a/tests/integration/test_sqcmds.py b/tests/integration/test_sqcmds.py index 569efa69ac..5e23e469c6 100644 --- a/tests/integration/test_sqcmds.py +++ b/tests/integration/test_sqcmds.py @@ -288,7 +288,7 @@ def test_sqcmds_regex_hostname(table, datadir): cfgfile = create_dummy_config_file(datadir=datadir) df = get_sqobject(table)(config_file=cfgfile).get( - hostname=['~leaf0.*', '~exit0.*']) + hostname=['~leaf.*', '~exit.*']) if table == 'tables': if 'junos' in datadir: diff --git a/tests/integration/test_update_data.py b/tests/integration/test_update_data.py index 4c60ece59e..bdff726131 100644 --- a/tests/integration/test_update_data.py +++ b/tests/integration/test_update_data.py @@ -20,16 +20,15 @@ # This is not just a set of tests, it will also update # the data collected for other test_sqcmds tests -ansible_file = \ - '/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory' -sqcmds_dir = 'tests/integration/sqcmds/' -UPDATE_SQCMDS = 'tests/utilities/update_sqcmds.py' -cndcn_samples_dir = 'tests/integration/all_cndcn/' -parquet_dir = '/tmp/suzieq-tests-parquet' +ansible_file = "/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory" +sqcmds_dir = "tests/integration/sqcmds/" +UPDATE_SQCMDS = "tests/utilities/update_sqcmds.py" +cndcn_samples_dir = "tests/integration/all_cndcn/" +parquet_dir = "/tmp/suzieq-tests-parquet" def copytree(src, dst, symlinks=False, ignore=None): - '''Copy folders''' + """Copy folders""" if not os.path.isdir(dst): os.makedirs(dst) for item in os.listdir(src): @@ -45,20 +44,20 @@ def copytree(src, dst, symlinks=False, ignore=None): def create_config(t_dir, suzieq_dir): - '''Create dummy config''' + """Create dummy config""" # We need to create a tempfile to hold the config tmpconfig = load_sq_config(config_file=conftest.create_dummy_config_file()) - tmpconfig['data-directory'] = f"{t_dir}/parquet" + tmpconfig["data-directory"] = f"{t_dir}/parquet" - fname = f'{t_dir}/suzieq-cfg.yml' + fname = f"{t_dir}/suzieq-cfg.yml" - with open(fname, 'w') as f: + with open(fname, "w") as f: f.write(yaml.dump(tmpconfig)) return fname def run_cmd(cmd): - '''Execute given cmd''' + """Execute given cmd""" output = None error = None returncode = None @@ -72,70 +71,87 @@ def run_cmd(cmd): logging.warning(f"ERROR: {e.output} {e.returncode}") if output: - output = output.decode('utf-8') + output = output.decode("utf-8") return output, returncode, error def get_cndcn(path): - '''Return path to cdcn folder''' + """Return path to cdcn folder""" os.chdir(path) run_cmd( - ['git', 'clone', - 'https://github.com/netenglabs/cloud-native-data-center-networking.git']) # noqa - return os.getcwd() + '/cloud-native-data-center-networking' + [ + "git", + "clone", + "https://github.com/netenglabs/cloud-native-data-center-networking.git", + ] + ) # noqa + return os.getcwd() + "/cloud-native-data-center-networking" + # pylint: disable=redefined-outer-name def run_sqpoller_gather(name, ansible_dir, suzieq_dir, input_path): - '''Run the poller to only collect raw data''' + """Run the poller to only collect raw data""" sqcmd_path = [sys.executable, f"{suzieq_dir}/suzieq/poller/sq_poller.py"] - sqcmd = sqcmd_path + ['-a', ansible_dir + ansible_file, '-n', name, - '--run-once', 'gather', '--output-dir', - f'{input_path}/suzieq-input'] + sqcmd = sqcmd_path + [ + "-a", + ansible_dir + ansible_file, + "-n", + name, + "--run-once", + "gather", + "--output-dir", + f"{input_path}/suzieq-input", + ] _, code, _ = run_cmd(sqcmd) assert code == 0 or code is None def run_sqpoller_process(files_dir, suzieq_dir, cfg_file): - '''Run the poller to only collect processed output''' + """Run the poller to only collect processed output""" sqcmd_path = [sys.executable, f"{suzieq_dir}/suzieq/poller/sq_poller.py"] - sqcmd = sqcmd_path + ['-i', files_dir, '-c', cfg_file] + sqcmd = sqcmd_path + ["-i", files_dir, "-c", cfg_file] _, code, _ = run_cmd(sqcmd) assert code == 0 or code is None def run_scenario(scenario): - '''Run ansible playbook for given scenario''' - run_cmd(['ansible-playbook', '-b', '-e', f'scenario={scenario}', - 'deploy.yml']) + """Run ansible playbook for given scenario""" + run_cmd(["ansible-playbook", "-b", "-e", f"scenario={scenario}", "deploy.yml"]) time.sleep(10) - out, code, err = run_cmd(['ansible-playbook', 'ping.yml']) + out, code, err = run_cmd(["ansible-playbook", "ping.yml"]) logging.warning(f"ping results {out} {code} {err}") print(f"ping results {out} {code} {err}") return out, code # pylint: disable=redefined-outer-name -def check_suzieq_data(suzieq_dir, name, cfg_file, threshold='14'): - '''Check cmd outputs to verify proper data gather''' +def check_suzieq_data(suzieq_dir, name, cfg_file, threshold="14"): + """Check cmd outputs to verify proper data gather""" sqcmd_path = [sys.executable, f"{suzieq_dir}/{conftest.suzieq_cli_path}"] - sqcmd = sqcmd_path + ['device', 'unique', '--columns=namespace', - f'--namespace={name}', '--count=True', '-c', - cfg_file] + sqcmd = sqcmd_path + [ + "device", + "unique", + "--columns=namespace", + f"--namespace={name}", + "--count=True", + "-c", + cfg_file, + ] out, _, err = run_cmd(sqcmd) # there should be 14 different hosts collected - assert threshold in out, f'failed {out}, {err}' - for cmd in ['bgp', 'interface', 'ospf', 'evpnVni']: - sqcmd = sqcmd_path + [cmd, 'assert', f'--namespace={name}'] + assert threshold in out, f"failed {out}, {err}" + for cmd in ["bgp", "interface", "ospf", "evpnVni"]: + sqcmd = sqcmd_path + [cmd, "assert", f"--namespace={name}"] out, code, err = run_cmd(sqcmd) assert code is None or code == 1 or code == 255 # pylint: disable=redefined-outer-name def gather_data(topology, proto, scenario, name, suzieq_dir, input_path): - '''Poll data and populate DB''' + """Poll data and populate DB""" os.chdir(f"{topology}/{proto}") vagrant_up() _, code = run_scenario(scenario) @@ -145,17 +161,17 @@ def gather_data(topology, proto, scenario, name, suzieq_dir, input_path): time.sleep(10) vagrant_up() run_scenario(scenario) - folder = os.getcwd() + '/..' + folder = os.getcwd() + "/.." run_sqpoller_gather(name, folder, suzieq_dir, input_path) vagrant_down() # sleep_time = random.random() * 30 time.sleep(120) - os.chdir('../..') + os.chdir("../..") # pylint: disable=redefined-outer-name -def update_data(name, files_dir, suzieq_dir, tmp_path, number_of_devices='14'): - '''Update DB''' +def update_data(name, files_dir, suzieq_dir, tmp_path, number_of_devices="14"): + """Update DB""" cfg_file = create_config(tmp_path, suzieq_dir) run_sqpoller_process(files_dir, suzieq_dir, cfg_file) check_suzieq_data(suzieq_dir, name, cfg_file, number_of_devices) @@ -164,315 +180,348 @@ def update_data(name, files_dir, suzieq_dir, tmp_path, number_of_devices='14'): def vagrant_up(): - '''Spin up the topology''' + """Spin up the topology""" logging.warning(f"VAGRANT dir {os.getcwd()}") print(f"VAGRANT dir {os.getcwd()}") - run_cmd(['vagrant', 'up']) - out, code, _ = run_cmd(['vagrant', 'status']) + run_cmd(["vagrant", "up"]) + out, code, _ = run_cmd(["vagrant", "status"]) logging.warning(f"VAGRANT UP {out}") - run_cmd(['vagrant', 'up']) - out, code, _ = run_cmd(['vagrant', 'status']) + run_cmd(["vagrant", "up"]) + out, code, _ = run_cmd(["vagrant", "status"]) logging.warning(f"VAGRANT UP {out}") return code def vagrant_down(): - '''Shutdown the topology''' + """Shutdown the topology""" logging.warning("VAGRANT DOWN") - run_cmd(['vagrant', 'destroy', '-f']) + run_cmd(["vagrant", "destroy", "-f"]) # this is an attempt to clean up vagrant if something goes wrong @pytest.fixture def vagrant_setup(): - '''???''' + """???""" yield vagrant_down() def git_rm_old_files(namespace): - '''Del old files from namespace''' - nsdirs = Path('tests/data/parquet/').glob(f'**/namespace={namespace}') + """Del old files from namespace""" + nsdirs = Path("tests/data/parquet/").glob(f"**/namespace={namespace}") for folder in nsdirs: try: - check_call(['git', 'rm', '-rf', str(folder)]) + check_call(["git", "rm", "-rf", str(folder)]) except CalledProcessError: shutil.rmtree(str(folder)) def git_rm_input_dir(dstdir): - '''Delete the input dir provided''' + """Delete the input dir provided""" if os.path.isdir(dstdir): try: - check_call(['git', 'rm', '-rf', dstdir]) + check_call(["git", "rm", "-rf", dstdir]) except CalledProcessError: shutil.rmtree(dstdir) def update_sqcmds(files, data_dir=None, namespace=None): - '''Update tests''' + """Update tests""" for file in files: - cmd = ['python3', UPDATE_SQCMDS, '-f', file, '-o'] + cmd = ["python3", UPDATE_SQCMDS, "-f", file, "-o"] if data_dir: - cmd += ['-d', data_dir] + cmd += ["-d", data_dir] if namespace: - cmd += ['-n', namespace] + cmd += ["-n", namespace] logging.warning(cmd) out, code, error = run_cmd(cmd) - assert code is None or code == 0, \ - f"{file} failed, {out} {code} {error}" + assert code is None or code == 0, f"{file} failed, {out} {code} {error}" def update_input_data(root_dir, nos, scenario, input_path): - '''Update collected raw data used for tests''' - dst_dir = f'{root_dir}/tests/integration/sqcmds/{nos}-input/{scenario}/' + """Update collected raw data used for tests""" + dst_dir = f"{root_dir}/tests/integration/sqcmds/{nos}-input/{scenario}/" git_rm_input_dir(dst_dir) - copytree(f'{input_path}/suzieq-input', dst_dir) + copytree(f"{input_path}/suzieq-input", dst_dir) class TestUpdate: - '''Update the data''' + """Update the data""" + @pytest.mark.test_update @pytest.mark.gather_data - @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), - reason='Not gathering data') + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not gathering data" + ) # pylint: disable=redefined-outer-name, unused-argument def test_gather_cumulus_data(self, tmp_path, vagrant_setup): - '''Collect data for Cumulus, bgp''' + """Collect data for Cumulus, bgp""" orig_dir = os.getcwd() path = get_cndcn(tmp_path) - os.chdir(path + '/topologies') + os.chdir(path + "/topologies") - gather_data('dual-attach', 'evpn', 'ospf-ibgp', - 'ospf-ibgp', orig_dir, tmp_path) - update_input_data(orig_dir, 'cumulus', 'ospf-ibgp', tmp_path) + gather_data("dual-attach", "evpn", "ospf-ibgp", "ospf-ibgp", orig_dir, tmp_path) + update_input_data(orig_dir, "cumulus", "ospf-ibgp", tmp_path) - gather_data('dual-attach', 'evpn', 'centralized', - 'dual-evpn', orig_dir, tmp_path) - update_input_data(orig_dir, 'cumulus', 'dual-evpn', tmp_path) + gather_data( + "dual-attach", "evpn", "centralized", "dual-evpn", orig_dir, tmp_path + ) + update_input_data(orig_dir, "cumulus", "dual-evpn", tmp_path) - gather_data('single-attach', 'ospf', 'numbered', - 'ospf-single', orig_dir, tmp_path) - update_input_data(orig_dir, 'cumulus', 'ospf-single', tmp_path) + gather_data( + "single-attach", "ospf", "numbered", "ospf-single", orig_dir, tmp_path + ) + update_input_data(orig_dir, "cumulus", "ospf-single", tmp_path) - gather_data('dual-attach', 'bgp', 'unnumbered', - 'dual-bgp', orig_dir, tmp_path) - update_input_data(orig_dir, 'cumulus', 'dual-bgp', tmp_path) + gather_data("dual-attach", "bgp", "unnumbered", "dual-bgp", orig_dir, tmp_path) + update_input_data(orig_dir, "cumulus", "dual-bgp", tmp_path) @pytest.mark.test_update @pytest.mark.update_data @pytest.mark.cumulus - @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), - reason='Not updating data') + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not updating data" + ) def test_update_cumulus_multidc_data(self, tmp_path): - '''Collect data for Cumulus evpn, ospf''' + """Collect data for Cumulus evpn, ospf""" orig_dir = os.getcwd() update_data( - 'ospf-ibgp', - f'{orig_dir}/tests/integration/sqcmds/cumulus-input/ospf-ibgp', - orig_dir, tmp_path) + "ospf-ibgp", + f"{orig_dir}/tests/integration/sqcmds/cumulus-input/ospf-ibgp", + orig_dir, + tmp_path, + ) update_data( - 'dual-evpn', - f'{orig_dir}/tests/integration/sqcmds/cumulus-input/dual-evpn', - orig_dir, tmp_path) + "dual-evpn", + f"{orig_dir}/tests/integration/sqcmds/cumulus-input/dual-evpn", + orig_dir, + tmp_path, + ) update_data( - 'ospf-single', - f'{orig_dir}/tests/integration/sqcmds/cumulus-input/ospf-single', - orig_dir, tmp_path) - - dst_dir = f'{orig_dir}/tests/data/parquet' - git_rm_old_files('ospf-ibgp') - git_rm_old_files('dual-evpn') - git_rm_old_files('ospf-single') - copytree(f'{tmp_path}/parquet', dst_dir) - shutil.rmtree(f'{tmp_path}/parquet') + "ospf-single", + f"{orig_dir}/tests/integration/sqcmds/cumulus-input/ospf-single", + orig_dir, + tmp_path, + ) + + dst_dir = f"{orig_dir}/tests/data/parquet" + git_rm_old_files("ospf-ibgp") + git_rm_old_files("dual-evpn") + git_rm_old_files("ospf-single") + copytree(f"{tmp_path}/parquet", dst_dir) + shutil.rmtree(f"{tmp_path}/parquet") update_data( - 'dual-bgp', - f'{orig_dir}/tests/integration/sqcmds/cumulus-input/dual-bgp', - orig_dir, tmp_path) + "dual-bgp", + f"{orig_dir}/tests/integration/sqcmds/cumulus-input/dual-bgp", + orig_dir, + tmp_path, + ) - dst_dir = f'{orig_dir}/tests/data/parquet' - git_rm_old_files('dual-bgp') + dst_dir = f"{orig_dir}/tests/data/parquet" + git_rm_old_files("dual-bgp") - copytree(f'{tmp_path}/parquet', dst_dir) - shutil.rmtree(f'{tmp_path}/parquet') + copytree(f"{tmp_path}/parquet", dst_dir) + shutil.rmtree(f"{tmp_path}/parquet") # update the samples data with updates from the newly collected data - if os.environ.get('SUZIEQ_POLLER', None) != 'data': - update_sqcmds(glob.glob(f'{sqcmds_dir}/cumulus-samples/*.yml')) + if os.environ.get("SUZIEQ_POLLER", None) != "data": + update_sqcmds(glob.glob(f"{sqcmds_dir}/cumulus-samples/*.yml")) def _update_test_data_common_fn(self, nos, tmp_path, device_cnt): - '''Update tests data''' + """Update tests data""" orig_dir = os.getcwd() - update_data(nos, f'{orig_dir}/tests/integration/sqcmds/{nos}-input/', - orig_dir, tmp_path, number_of_devices=device_cnt) - - dst_dir = f'{orig_dir}/tests/data/parquet' + update_data( + nos, + f"{orig_dir}/tests/integration/sqcmds/{nos}-input/", + orig_dir, + tmp_path, + number_of_devices=device_cnt, + ) + + dst_dir = f"{orig_dir}/tests/data/parquet" git_rm_old_files(nos) - copytree(f'{tmp_path}/parquet', dst_dir) - shutil.rmtree(f'{tmp_path}/parquet') + copytree(f"{tmp_path}/parquet", dst_dir) + shutil.rmtree(f"{tmp_path}/parquet") # update the samples data with updates from the newly collected data - if os.environ.get('SUZIEQ_POLLER', None) != 'data': - update_sqcmds(glob.glob(f'{sqcmds_dir}/{nos}-samples/*.yml')) + 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.eos - @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), - reason='Not updating data') + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not updating data" + ) def test_update_eos_data(self, tmp_path): - '''Update EOS test data''' - self._update_test_data_common_fn('eos', tmp_path, '14') + """Update EOS test data""" + self._update_test_data_common_fn("eos", tmp_path, "14") @pytest.mark.test_update @pytest.mark.update_data @pytest.mark.nxos - @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), - reason='Not updating data') + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not updating data" + ) def test_update_nxos_data(self, tmp_path): - '''Update NXOS test data''' - self._update_test_data_common_fn('nxos', tmp_path, '14') + """Update NXOS test data""" + self._update_test_data_common_fn("nxos", tmp_path, "14") @pytest.mark.test_update @pytest.mark.update_data @pytest.mark.junos - @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), - reason='Not updating data') + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not updating data" + ) def test_update_junos_data(self, tmp_path): - '''Update Junos test data''' - self._update_test_data_common_fn('junos', tmp_path, '12') + """Update Junos test data""" + self._update_test_data_common_fn("junos", tmp_path, "12") @pytest.mark.test_update @pytest.mark.update_data @pytest.mark.mixed - @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), - reason='Not updating data') + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not updating data" + ) def test_update_mixed_data(self, tmp_path): - '''Update test data for mixed sim, from Rick''' - self._update_test_data_common_fn('mixed', tmp_path, '8') + """Update test data for mixed sim, from Rick""" + self._update_test_data_common_fn("mixed", tmp_path, "8") @pytest.mark.test_update @pytest.mark.update_data @pytest.mark.panos - @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), - reason='Not updating data') + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not updating data" + ) def test_update_panos_data(self, tmp_path): - '''Update test data for Palo Alto Firewall''' - self._update_test_data_common_fn('panos', tmp_path, '14') + """Update test data for Palo Alto Firewall""" + self._update_test_data_common_fn("panos", tmp_path, "14") @pytest.mark.test_update @pytest.mark.update_data @pytest.mark.vmx - @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None), - reason='Not updating data') + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not updating data" + ) def test_update_vmx_data(self, tmp_path): - '''Update test data for VMX''' - self._update_test_data_common_fn('vmx', tmp_path, '5') + """Update test data for VMX""" + self._update_test_data_common_fn("vmx", tmp_path, "5") + + @pytest.mark.test_update + @pytest.mark.update_data + @pytest.mark.multicast + @pytest.mark.skipif( + not os.environ.get("SUZIEQ_POLLER", None), reason="Not updating data" + ) + def test_update_multicast(self, tmp_path): + """Update test data for multicast.""" + self._update_test_data_common_fn("multicast", tmp_path, "6") tests = [ - ['bgp', 'numbered'], - ['bgp', 'unnumbered'], - ['bgp', 'docker'], - ['ospf', 'numbered'], - ['ospf', 'unnumbered'], - ['ospf', 'docker'], - ['evpn', 'centralized'], - ['evpn', 'distributed'], - ['evpn', 'ospf-ibgp'] + ["bgp", "numbered"], + ["bgp", "unnumbered"], + ["bgp", "docker"], + ["ospf", "numbered"], + ["ospf", "unnumbered"], + ["ospf", "docker"], + ["evpn", "centralized"], + ["evpn", "distributed"], + ["evpn", "ospf-ibgp"], ] def _test_sqcmds(context_config, testvar): - '''Workhorse fn to update Test data''' + """Workhorse fn to update Test data""" output, error = conftest.setup_sqcmds(testvar, context_config) jout = [] if output: - try: - jout = json.loads(output.decode('utf-8').strip()) + jout = json.loads(output.decode("utf-8").strip()) except json.JSONDecodeError: jout = output - if 'output' in testvar: + if "output" in testvar: try: - expected_jout = json.loads(testvar['output'].strip()) + expected_jout = json.loads(testvar["output"].strip()) except json.JSONDecodeError: - expected_jout = testvar['output'] + expected_jout = testvar["output"] - assert (isinstance(expected_jout, dict) == isinstance(jout, dict)) + assert isinstance(expected_jout, dict) == isinstance(jout, dict) if len(expected_jout) > 0: assert len(jout) > 0 - elif not error and 'xfail' in testvar: + elif not error and "xfail" in testvar: # this was marked to fail, but it succeeded so we must return return - elif error and 'xfail' in testvar and 'error' in testvar['xfail']: - if jout.decode("utf-8") == testvar['xfail']['error']: + elif error and "xfail" in testvar and "error" in testvar["xfail"]: + if jout.decode("utf-8") == testvar["xfail"]["error"]: assert False else: assert True - elif 'error' in testvar and 'error' in testvar['error']: - assert error, \ - (f"expected error, but got: output: {output}, error: {error}, " - f"xfail: {testvar['xfail']}") + elif "error" in testvar and "error" in testvar["error"]: + assert error, ( + f"expected error, but got: output: {output}, error: {error}, " + f"xfail: {testvar['xfail']}" + ) else: raise Exception(f"either xfail or output requried {error}") + # pylint: disable=redefined-outer-name def _gather_cndcn_data(topology, proto, scenario, input_path): - '''Collect raw data for CDCN topologies''' + """Collect raw data for CDCN topologies""" orig_dir = os.getcwd() path = get_cndcn(input_path) # pylint: disable=redefined-outer-name - name = f'{topology}_{proto}_{scenario}' - os.chdir(path + '/topologies') - dst_dir = f'{orig_dir}/tests/integration/all_cndcn/{name}-input' + name = f"{topology}_{proto}_{scenario}" + os.chdir(path + "/topologies") + dst_dir = f"{orig_dir}/tests/integration/all_cndcn/{name}-input" gather_data(topology, proto, scenario, name, orig_dir, input_path) git_rm_input_dir(dst_dir) - copytree(f'{input_path}/suzieq-input', dst_dir) + copytree(f"{input_path}/suzieq-input", dst_dir) os.chdir(orig_dir) def _update_cndcn_data(topology, proto, scenario, tmp_path): - '''Update local DB with data from topologies, CDCN topologies''' + """Update local DB with data from topologies, CDCN topologies""" orig_dir = os.getcwd() # pylint: disable=redefined-outer-name - name = f'{topology}_{proto}_{scenario}' + name = f"{topology}_{proto}_{scenario}" - update_data(name, f'{orig_dir}/tests/integration/all_cndcn/{name}-input', - orig_dir, tmp_path) + update_data( + name, f"{orig_dir}/tests/integration/all_cndcn/{name}-input", orig_dir, tmp_path + ) if not os.path.isdir(parquet_dir): os.mkdir(parquet_dir) - if not os.path.isdir(f'{parquet_dir}/{name}'): - os.mkdir(f'{parquet_dir}/{name}') + if not os.path.isdir(f"{parquet_dir}/{name}"): + os.mkdir(f"{parquet_dir}/{name}") - copytree(f"{tmp_path}/parquet", - f"{parquet_dir}/{name}/parquet/") + copytree(f"{tmp_path}/parquet", f"{parquet_dir}/{name}/parquet/") - if os.environ.get('UPDATE_SQCMDS', None): - update_sqcmds(glob.glob(f'{cndcn_samples_dir}/{name}-samples/*.yml'), - data_dir=f"{parquet_dir}/{name}/parquet", - namespace=name) + if os.environ.get("UPDATE_SQCMDS", None): + update_sqcmds( + glob.glob(f"{cndcn_samples_dir}/{name}-samples/*.yml"), + data_dir=f"{parquet_dir}/{name}/parquet", + namespace=name, + ) def _test_data(topology, proto, scenario, testvar): # pylint: disable=redefined-outer-name - name = f'{topology}_{proto}_{scenario}' - testvar['data-directory'] = f"{parquet_dir}/{name}/parquet" - dummy_config = load_sq_config( - config_file=conftest.create_dummy_config_file()) + name = f"{topology}_{proto}_{scenario}" + testvar["data-directory"] = f"{parquet_dir}/{name}/parquet" + dummy_config = load_sq_config(config_file=conftest.create_dummy_config_file()) _test_sqcmds(dummy_config, testvar) @@ -481,26 +530,26 @@ def _test_data(topology, proto, scenario, testvar): # because we have two vagrant files in CNDCN, that means we can run # two simulations at a time, one single-attach and one dual-attach + class TestDualAttach: - '''Update Tests and data for dual-attach topology''' - topology = 'dual-attach' + """Update Tests and data for dual-attach topology""" + + topology = "dual-attach" @pytest.mark.cndcn @pytest.mark.gather_dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") @pytest.mark.parametrize("proto, scenario", tests) # pylint: disable=unused-argument def test_gather_dual_data(self, proto, scenario, tmp_path, vagrant_setup): - '''Collect run-once=gather data for dual-attach topology''' + """Collect run-once=gather data for dual-attach topology""" _gather_cndcn_data(self.topology, proto, scenario, tmp_path) # noqa @pytest.mark.update_dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") @pytest.mark.parametrize("proto, scenario", tests) def test_update_dual_data(self, proto, scenario, tmp_path): - '''Update parquet for dual-attach topology scenarios''' + """Update parquet for dual-attach topology scenarios""" # this takes the data that was captured with run-once=gather # and creates the parquet data # if you also have UPDATE_SQCMDS in your os environment @@ -512,176 +561,205 @@ def test_update_dual_data(self, proto, scenario, tmp_path): # updater @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir(f"{cndcn_samples_dir}/dual-attach_bgp_numbered-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_bgp_numbered-samples/") + ), + ) # pylint: disable=unused-argument def test_dual_bgp_numbered_data(self, testvar, tmp_path): - '''Update test data for dual-attach numbered ospf''' - proto = 'bgp' - scenario = 'numbered' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - f'you need to run update_dual_attach test first') + """Update test data for dual-attach numbered ospf""" + proto = "bgp" + scenario = "numbered" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + f"you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/dual-attach_bgp_unnumbered-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_bgp_unnumbered-samples/") + ), + ) def test_dual_bgp_unnumbered_data(self, testvar): - '''Update test data for dual-attach unnumbered bgp''' - proto = 'bgp' - scenario = 'unnumbered' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_dual_attach test first') + """Update test data for dual-attach unnumbered bgp""" + proto = "bgp" + scenario = "unnumbered" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir(f"{cndcn_samples_dir}/dual-attach_bgp_docker-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_bgp_docker-samples/") + ), + ) def test_dual_bgp_docker_data(self, testvar): - '''Update test data for dual-attach bgp w/docker''' - proto = 'bgp' - scenario = 'docker' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_dual_attach test first') + """Update test data for dual-attach bgp w/docker""" + proto = "bgp" + scenario = "docker" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir(f"{cndcn_samples_dir}/dual-attach_ospf_numbered-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_ospf_numbered-samples/") + ), + ) def test_dual_ospf_numbered_data(self, testvar): - '''Update test data for dual-attach numbered ospf''' - proto = 'ospf' - scenario = 'numbered' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_dual_attach test first') + """Update test data for dual-attach numbered ospf""" + proto = "ospf" + scenario = "numbered" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/dual-attach_ospf_unnumbered-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_ospf_unnumbered-samples/") + ), + ) def test_dual_ospf_unnumbered_data(self, testvar): - '''Update test data for dual-attach unnumbered ospf''' - proto = 'ospf' - scenario = 'unnumbered' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_dual_attach test first') + """Update test data for dual-attach unnumbered ospf""" + proto = "ospf" + scenario = "unnumbered" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir(f"{cndcn_samples_dir}/dual-attach_ospf_docker-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_ospf_docker-samples/") + ), + ) def test_dual_ospf_docker_data(self, testvar): - '''Update test data for dual-attach ospf w/docker''' - proto = 'ospf' - scenario = 'docker' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_dual_attach test first') + """Update test data for dual-attach ospf w/docker""" + proto = "ospf" + scenario = "docker" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/dual-attach_evpn_centralized-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_evpn_centralized-samples/") + ), + ) def test_dual_evpn_centralized_data(self, testvar): - '''Update test data for dual-attach centralized evpn''' - proto = 'evpn' - scenario = 'centralized' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_dual_attach test first') + """Update test data for dual-attach centralized evpn""" + proto = "evpn" + scenario = "centralized" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/dual-attach_evpn_distributed-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_evpn_distributed-samples/") + ), + ) def test_dual_evpn_distributed_data(self, testvar): - '''Update test data for dual-attach evpn''' - proto = 'evpn' - scenario = 'distributed' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_dual_attach test first') + """Update test data for dual-attach evpn""" + proto = "evpn" + scenario = "distributed" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.dual_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/dual-attach_evpn_ospf-ibgp-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/dual-attach_evpn_ospf-ibgp-samples/") + ), + ) def test_dual_evpn_ospf_ibgp_data(self, testvar): - '''Update test data for dual attach ospf-ibgp''' - proto = 'evpn' - scenario = 'ospf-ibgp' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_dual_attach test first') + """Update test data for dual attach ospf-ibgp""" + proto = "evpn" + scenario = "ospf-ibgp" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_dual_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) class TestSingleAttach: - '''Update data and tests for single-attach topology''' - topology = 'single-attach' + """Update data and tests for single-attach topology""" + + topology = "single-attach" @pytest.mark.cndcn @pytest.mark.gather_single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") @pytest.mark.parametrize("proto, scenario", tests) # pylint: disable=unused-argument - def test_gather_single_data(self, proto, scenario, tmp_path, - vagrant_setup): - '''Collect run-once=gather data for single attach topology''' - _gather_cndcn_data('single-attach', proto, scenario, tmp_path) + def test_gather_single_data(self, proto, scenario, tmp_path, vagrant_setup): + """Collect run-once=gather data for single attach topology""" + _gather_cndcn_data("single-attach", proto, scenario, tmp_path) @pytest.mark.update_single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") @pytest.mark.parametrize("proto, scenario", tests) def test_update_single_data(self, proto, scenario, tmp_path): - '''Update test data for single attach topology''' + """Update test data for single attach topology""" # this takes the data that was captured with run-once=gather # and creates the parquet data # if you also have UPDATE_SQCMDS in your os environment @@ -694,185 +772,230 @@ def test_update_single_data(self, proto, scenario, tmp_path): @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/single-attach_bgp_numbered-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_bgp_numbered-samples/") + ), + ) def test_single_bgp_numbered_data(self, testvar): - '''Update test data for single attach numbered BGP''' - proto = 'bgp' - scenario = 'numbered' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach numbered BGP""" + proto = "bgp" + scenario = "numbered" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/single-attach_bgp_unnumbered-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_bgp_unnumbered-samples/") + ), + ) def test_single_bgp_unnumbered_data(self, testvar): - '''Update test data for single attach unnumbered BGP''' - proto = 'bgp' - scenario = 'unnumbered' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach unnumbered BGP""" + proto = "bgp" + scenario = "unnumbered" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/single-attach_bgp_docker-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_bgp_docker-samples/") + ), + ) def test_single_bgp_docker_data(self, testvar): - '''Update test data for single attach BGP w/Docker''' - proto = 'bgp' - scenario = 'docker' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach BGP w/Docker""" + proto = "bgp" + scenario = "docker" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/single-attach_ospf_numbered-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_ospf_numbered-samples/") + ), + ) def test_single_ospf_numbered_data(self, testvar): - '''Update test data for single attach numbered OSPF''' - proto = 'ospf' - scenario = 'numbered' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach numbered OSPF""" + proto = "ospf" + scenario = "numbered" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/single-attach_ospf_unnumbered-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_ospf_unnumbered-samples/") + ), + ) def test_single_ospf_unnumbered_data(self, testvar): - '''Update test data for single attach OSPF unnumbered''' - proto = 'ospf' - scenario = 'unnumbered' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach OSPF unnumbered""" + proto = "ospf" + scenario = "unnumbered" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir(f"{cndcn_samples_dir}/single-attach_ospf_docker-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_ospf_docker-samples/") + ), + ) def test_single_ospf_docker_data(self, testvar): - '''Update test data for single attach OSPF docker''' - proto = 'ospf' - scenario = 'docker' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach OSPF docker""" + proto = "ospf" + scenario = "docker" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/single-attach_evpn_centralized-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_evpn_centralized-samples/") + ), + ) def test_single_evpn_centralized_data(self, testvar): - '''Update test data for single attach centralized evpn''' - proto = 'evpn' - scenario = 'centralized' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach centralized evpn""" + proto = "evpn" + scenario = "centralized" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/single-attach_evpn_distributed-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_evpn_distributed-samples/") + ), + ) def test_single_evpn_distributed_data(self, testvar): - '''Update test data for single attach evpn''' - proto = 'evpn' - scenario = 'distributed' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach evpn""" + proto = "evpn" + scenario = "distributed" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) @pytest.mark.cndcn @pytest.mark.single_attach - @pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='Not updating data') - @pytest.mark.parametrize("testvar", conftest.load_up_the_tests( - os.scandir( - f"{cndcn_samples_dir}/single-attach_evpn_ospf-ibgp-samples/"))) + @pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="Not updating data") + @pytest.mark.parametrize( + "testvar", + conftest.load_up_the_tests( + os.scandir(f"{cndcn_samples_dir}/single-attach_evpn_ospf-ibgp-samples/") + ), + ) def test_single_evpn_ospf_ibgp_data(self, testvar): - '''Update test data for single attach ospf ibgp''' - proto = 'evpn' - scenario = 'ospf-ibgp' - name = f'{self.topology}_{proto}_{scenario}' - assert os.path.isdir(f'{parquet_dir}/{name}'), \ - (f'missing {parquet_dir}/{name} directory. ' - 'you need to run update_single_attach test first') + """Update test data for single attach ospf ibgp""" + proto = "evpn" + scenario = "ospf-ibgp" + name = f"{self.topology}_{proto}_{scenario}" + assert os.path.isdir(f"{parquet_dir}/{name}"), ( + f"missing {parquet_dir}/{name} directory. " + "you need to run update_single_attach test first" + ) _test_data(self.topology, proto, scenario, testvar) + # This isn't actually a test, it's just used to cleanup any stray vagrant state @pytest.mark.cleanup -@pytest.mark.skipif('SUZIEQ_POLLER' not in os.environ, - reason='not sqpoller') +@pytest.mark.skipif("SUZIEQ_POLLER" not in os.environ, reason="not sqpoller") def test_cleanup_vagrant(): - '''Cleanup sim''' - devices = ['dual-attach_internet', 'dual-attach_spine01', - 'dual-attach_spine02', 'dual-attach_leaf01', - 'dual-attach_leaf02', 'dual-attach_leaf03', - 'dual-attach_leaf04', 'dual-attach_exit01', - 'dual-attach_exit02', 'dual-attach_server101', - 'dual-attach_server102', 'dual-attach_server103', - 'dual-attach_server104', 'dual-attach_edge01', - 'single-attach_internet', 'single-attach_spine01', - 'single-attach_spine02', 'single-attach_leaf01', - 'single-attach_leaf02', 'single-attach_leaf03', - 'single-attach_leaf04', 'single-attach_exit01', - 'single-attach_exit02', 'single-attach_server101', - 'single-attach_server102', 'single-attach_server103', - 'single-attach_server104', 'single-attach_edge01'] + """Cleanup sim""" + devices = [ + "dual-attach_internet", + "dual-attach_spine01", + "dual-attach_spine02", + "dual-attach_leaf01", + "dual-attach_leaf02", + "dual-attach_leaf03", + "dual-attach_leaf04", + "dual-attach_exit01", + "dual-attach_exit02", + "dual-attach_server101", + "dual-attach_server102", + "dual-attach_server103", + "dual-attach_server104", + "dual-attach_edge01", + "single-attach_internet", + "single-attach_spine01", + "single-attach_spine02", + "single-attach_leaf01", + "single-attach_leaf02", + "single-attach_leaf03", + "single-attach_leaf04", + "single-attach_exit01", + "single-attach_exit02", + "single-attach_server101", + "single-attach_server102", + "single-attach_server103", + "single-attach_server104", + "single-attach_edge01", + ] for device in devices: - out, _, err = run_cmd(['virsh', 'destroy', device]) + out, _, err = run_cmd(["virsh", "destroy", device]) print(f"virsh destroy {out} {err}") - out, _, err = run_cmd(['virsh', 'undefine', device]) + out, _, err = run_cmd(["virsh", "undefine", device]) print(f"virsh undefine {out} {err}") out, _, err = run_cmd( - ['virsh', 'vol-delete', f"{device}.img", '--pool', 'default']) + ["virsh", "vol-delete", f"{device}.img", "--pool", "default"] + ) print(f"virsh vol-delete {out} {err}") - out, _, err = run_cmd(['vagrant', 'global-status', '--prune']) + out, _, err = run_cmd(["vagrant", "global-status", "--prune"]) print(f"global status {out} {err}")