diff --git a/docs/index.md b/docs/index.md
index 15c6bc2829..0c585c7544 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -8,10 +8,11 @@ system goes well beyond what is normally considered monitoring and alerting. Suz
SuzieQ:
-* [Gathers data](https://suzieq.readthedocs.io/en/latest/poller/) using an agentless model using either SSH or REST API as the transport. We gather data from routers, bridges and Linux servers. We support gathering data from Arista EOS, Cisco's IOS, IOS-XE, and IOS-XR platforms, Cisco's NXOS, Cumulus Linux, Juniper's Junos(QFX, EX, MX and SRX platforms and Evolved OS), Palo Alto's Panos (version 8.0 or higher) and SoNIC devices, besides Linux servers.
-* Normalizes the data into a vendor-agnostic format.
-* Stores all data in files using the popular big data format, [Parquet](https://parquet.apache.org/).
-* Exposes via a CLI, [GUI](https://suzieq.readthedocs.io/en/latest/gui/), a [REST API](https://suzieq.readthedocs.io/en/latest/rest-server/), or via Python the analysis of the data gathered using easy, intuitive commands. The output can be rendered in various formats from plain text to JSON, CSV and Markdown.
+* We [gather data](https://suzieq.readthedocs.io/en/latest/poller/) using an agentless model using either SSH or REST API as the transport. We gather data from routers, bridges and Linux servers. We support gathering data from Alcatel-Lucent Enterprise AOS8, Arista EOS, Cisco's IOS, IOS-XE, and IOS-XR platforms, Cisco's NXOS (N7K with versions 8.4.4 or higher, and N9K with versions 9.3.1 or higher), Cumulus Linux, Juniper's Junos(QFX, EX, MX and SRX platforms and Evolved OS), Palo Alto's Panos (version 8.0 or higher) and SoNIC devices, besides Linux servers.
+* We normalize the data into a vendor-agnostic format.
+* We store all data in files using the popular big data format, [Parquet](https://parquet.apache.org/).
+* All the analysis are exposed either via a CLI, [GUI](https://suzieq.readthedocs.io/en/latest/gui/), a [REST API](https://suzieq.readthedocs.io/en/latest/rest-server/), or via Python. The output can be rendered in various formats from plain text to JSON and CSV.
+* The analysis engine used in this release is pandas, though we have prototyped with other analysis engines.
With the applications that we build on top of the framework we want to demonstrate a different and more systematic approach to thinking about networks. We want to show how useful it is to think of your network holistically.
diff --git a/docs/tables.md b/docs/tables.md
index 28a5c6753b..2cc26cc2c5 100644
--- a/docs/tables.md
+++ b/docs/tables.md
@@ -6,23 +6,26 @@ is the BGP data
that the bgp service collects from routers. To see what information is collected for each table, you can use the ```
describe``` (```bgp describe``` for example) via suzieq-cli to get the details. To see the list of tables, you can type ```help``` in suzieq-cli or run ```suzieq-cli --help```.
-| | Cumulus Linux | Arista EOS | Linux | Cisco NXOS | Juniper JunOS1 | SONIC | IOSXR | IOS | IOSXE | PanOS |
-| :---------: | :---------------: | :------------: | :-------: | :------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: |
-| Arpnd | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
-| BGP | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
-| Device | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
-| EvpnVni | yes | yes | no | yes2 | yes | yes | no | no | no | no |
-| Filesystem (fs) | yes | no | yes | no | yes | yes | yes | no | no | no |
-| Interfaces | yes | yes | yes| yes | yes | yes | yes | yes | yes | yes |
-| Inventory | no | yes | no | yes | yes | no | no | no | no | no |
-| LLDP | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
-| CDP | no | no | no | yes | no | no | no | yes | yes | no |
-| Macs |yes | yes | yes | yes | yes | yes | no | yes | yes | no |
-| MLAG | yes | yes | no | yes | no | no | no | no | no | no |
-| Ospf |yes | yes | yes | yes | yes | yes | no | yes | yes | no |
-| Routes | yes | yes | yes | yes | yes3 | yes | yes | yes | yes | yes |
-| sqPoller | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
-| VLAN | yes | yes | yes | yes | yes | yes | no | yes | yes | no |
+| | Cumulus Linux | Alcatel AOS8 | Arista EOS | Linux | Cisco NXOS | Juniper JunOS | SONIC | IOSXR | IOS | IOSXE | PanOS |
+| :---------: | :---------: | :---------------: | :------------: | :-------: | :------: | :-------: | :-------: | :-------: | :-------: | :-------: | :-------: |
+| Arpnd | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
+| BGP | yes | no | yes | yes | yes | yes | yes | yes | yes | yes | yes |
+| Device | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
+| EvpnVni | no | yes | yes | no | yes* | yes | yes | no | no | no | no |
+| Filesystem (fs) | yes | no | yes | yes | yes | no | yes | no | no | no | no |
+| IfCounters | yes | no | yes | yes | no | no | yes | no | no | no | no |
+| Interfaces | yes | yes | yes | yes| yes | yes | yes | yes | yes | yes | yes |
+| Inventory | no | yes | yes | no | yes | yes | no | no | no | no | no |
+| LLDP | yes | no | yes | yes | yes | yes | yes | yes | yes | yes | yes |
+| CDP | no | no | no | no | yes | no | no | no | yes | yes | no |
+| Macs |yes | yes | yes | yes | yes | yes | yes | no | yes | yes | no |
+| MLAG | yes | no | yes | no | yes | no | no | no | no | no | no |
+| Ospf |yes | no | yes | yes | yes | yes | yes | no | yes | yes | no |
+| Routes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
+| sqPoller | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
+| Topcpu | yes | no | yes | yes | yes | no | yes | no | no | no | no |
+| Topmem | yes | no | yes | yes | no | no | yes | no | no | no | no |
+| VLAN | yes | yes | yes | yes | yes | yes | yes | no | yes | yes | no |
1. Junos supported devices includes MX, QFX, QFX10K, EX, SRX, and EVO.
2. EVPN support for NXOS requires version 9.3.3 or above, please reach out if you're using older versions of NXOS
diff --git a/pytest.ini b/pytest.ini
index b8596d59ba..eedf712ecf 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -123,6 +123,7 @@ markers =
parsing
# namespaces/nosses
+ aos
broken
cumulus
eos
diff --git a/suzieq/cli/sqcmds/command.py b/suzieq/cli/sqcmds/command.py
index acbca836cb..8c503cf911 100644
--- a/suzieq/cli/sqcmds/command.py
+++ b/suzieq/cli/sqcmds/command.py
@@ -275,7 +275,6 @@ def _pager_print(self, df: pd.DataFrame) -> None:
else:
print(df)
- # pylint: disable=too-many-statements
def _gen_output(self, df: pd.DataFrame, json_orient: str = "records",
dont_strip_cols: bool = False, sort: bool = True):
diff --git a/suzieq/config/arpnd.yml b/suzieq/config/arpnd.yml
index 50a4a23a50..b24a64b08d 100644
--- a/suzieq/config/arpnd.yml
+++ b/suzieq/config/arpnd.yml
@@ -11,6 +11,11 @@ show-fields:
- remote
apply:
+ aos:
+ version: all
+ command: show arp
+ textfsm: textfsm_templates/aos_show_arp.tfsm
+
cumulus:
version: all
command: ip neigh show
diff --git a/suzieq/config/device.yml b/suzieq/config/device.yml
index 571a80dd6e..b0e480d579 100644
--- a/suzieq/config/device.yml
+++ b/suzieq/config/device.yml
@@ -10,6 +10,16 @@ show-fields:
- address
- bootupTimestamp
apply:
+ aos:
+ version: all
+ command:
+ - command: show system
+ textfsm: textfsm_templates/aos_show_system.tfsm
+ # _entryType: system
+ # - command: show hardware-info
+ # textfsm: textfsm_templates/aos_show_hardware-info.tfsm
+ # _entryType: hardware
+
eos:
version: all
command: show version
diff --git a/suzieq/config/interfaces.yml b/suzieq/config/interfaces.yml
index 513b5dce78..a23caa3e0a 100644
--- a/suzieq/config/interfaces.yml
+++ b/suzieq/config/interfaces.yml
@@ -13,6 +13,29 @@ show-fields:
- ip6AddressList
apply:
+ aos:
+ version: all
+ merge: false
+ command:
+ - command: show interfaces status
+ textfsm: textfsm_templates/aos_show_interfaces_status.tfsm
+ _entryType: interfaces_status
+ - command: show interfaces
+ textfsm: textfsm_templates/aos_show_interfaces.tfsm
+ _entryType: interfaces
+ - command: show vlan members
+ textfsm: textfsm_templates/aos_show_vlan_members.tfsm
+ _entryType: members
+ - command: show ip interface
+ textfsm: textfsm_templates/aos_show_ip_interface.tfsm
+ _entryType: ip_interface
+ - command: show linkagg
+ textfsm: textfsm_templates/aos_show_linkagg.tfsm
+ _entryType: linkagg
+ - command: show linkagg port
+ textfsm: textfsm_templates/aos_show_linkagg_port.tfsm
+ _entryType: linkagg_ports
+
cumulus:
version: all
command: sudo vtysh -c "show int vrf all"; ip -d address show
diff --git a/suzieq/config/inventory.yml b/suzieq/config/inventory.yml
index 101f8b01d0..d6cd13b47d 100644
--- a/suzieq/config/inventory.yml
+++ b/suzieq/config/inventory.yml
@@ -11,6 +11,17 @@ show-fields:
- description
apply:
+ aos:
+ version: all
+ merge: False
+ command:
+ - command: show chassis
+ textfsm: textfsm_templates/aos_show_chassis.tfsm
+ _entryType: chassis
+ - command: show system
+ textfsm: textfsm_templates/aos_show_system.tfsm
+ _entryType: system
+
eos:
version: all
command: show inventory
diff --git a/suzieq/config/macs.yml b/suzieq/config/macs.yml
index 4711403bb6..abe26aa4c1 100644
--- a/suzieq/config/macs.yml
+++ b/suzieq/config/macs.yml
@@ -14,6 +14,12 @@ show-fields:
- flags
apply:
+ aos:
+ version: all
+ merge: False
+ command: show mac-learning
+ textfsm: textfsm_templates/aos_show_mac_learning.tfsm
+
cumulus:
version: all
command: /sbin/bridge fdb show
diff --git a/suzieq/config/routes.yml b/suzieq/config/routes.yml
index bde0ccd1c8..30706d9dd2 100644
--- a/suzieq/config/routes.yml
+++ b/suzieq/config/routes.yml
@@ -16,6 +16,20 @@ show-fields:
- action
apply:
+ aos:
+ version: all
+ merge: false
+ command:
+ - command: show arp
+ textfsm: textfsm_templates/aos_show_arp.tfsm
+ _entryType: arp
+ - command: show ip interface
+ textfsm: textfsm_templates/aos_show_ip_interface.tfsm
+ _entryType: ip_interface
+ - command: show ip routes
+ textfsm: textfsm_templates/aos_show_ip_routes.tfsm
+ _entryType: ip_routes
+
cumulus:
version: all
command: ip route show table all
diff --git a/suzieq/config/textfsm_templates/aos_show_arp.tfsm b/suzieq/config/textfsm_templates/aos_show_arp.tfsm
new file mode 100644
index 0000000000..dbfb0066e0
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_arp.tfsm
@@ -0,0 +1,17 @@
+Value ip_address ((?:[0-9]{1,3}\.){3}[0-9]{1,3})
+Value hardware_addr (([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]){2})
+Value type (DYNAMIC|STATIC)
+Value flags ([PAVBHIM]*)
+Value port (((\d+\/\d+\/\d+(\w)?)|(\d\/\d+)|(\d+)))
+Value interface (\S*)
+Value name (\S*)
+
+Start
+ ^Total \d+ arp entries$$
+ ^Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)$$
+ ^IP Addr\s+Hardware Addr\s+Type\s+Flags\s+Port\s+Interface\s+Name$$
+ ^[-+\+]+\s*$$ -> Arp
+
+Arp
+ ^\s+${ip_address}\s+${hardware_addr}\s+${type}\s*${flags}\s*${port}\s*${interface}\s*${name}\s*$$ -> Record
+# ^. -> Error
diff --git a/suzieq/config/textfsm_templates/aos_show_chassis.tfsm b/suzieq/config/textfsm_templates/aos_show_chassis.tfsm
new file mode 100644
index 0000000000..cced793d12
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_chassis.tfsm
@@ -0,0 +1,30 @@
+Value Key,Required chassis ([1-8])
+Value model_name (.+)
+Value model_type (.+)
+Value description (.+)
+Value part_number (\d+-\d+)
+Value hardware_revision (\w+)
+Value serial_number (.+)
+Value manufacture_date (\w{3}\s+\d{1,2}\s\d{4})
+Value admin_status (.+)
+Value operational_status ([A-Z]+)
+Value number_of_resets (\d+)
+Value mac_address (([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]){2})
+
+Start
+ ^Local\sChassis\sID\s${chassis}\s\(Master\)$$ -> Chassis
+ ^Remote\sChassis\sID\s${chassis}\s\(Slave\)$$ -> Chassis
+
+Chassis
+ ^\s{2}Model Name:\s+${model_name},$$
+ ^\s{2}Module Type:\s+${model_type},$$
+ ^\s{2}Description:\s+${description},$$
+ ^\s{2}Part Number:\s+${part_number},$$
+ ^\s{2}Hardware Revision:\s+${hardware_revision},$$
+ ^\s{2}Serial Number:\s+${serial_number},$$
+ ^\s{2}Manufacture Date:\s+${manufacture_date},$$
+ ^\s{2}Admin Status:\s+${admin_status},$$
+ ^\s{2}Operational Status:\s+${operational_status},$$
+ ^\s{2}Number Of Resets:\s+${number_of_resets},$$
+ ^\s{2}MAC Address:\s+${mac_address}$$ -> Record Start
+# ^. -> Error
diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm
new file mode 100644
index 0000000000..eadc3c85c7
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_interfaces.tfsm
@@ -0,0 +1,75 @@
+Value Key,Required chassis_slot_port (\d\/\d+\/\d+[\w]*)
+Value operation_status (up|down|dormant)
+Value port_down_violation_reason (.+\s*)
+Value last_time_link_changed (.+\s*)
+Value number_of_status_change (\d+)
+Value type (Ethernet|Fast Ethernet|Gigabit Ethernet)
+Value sfp_xfp (.+\s*)
+Value interface_type (Copper|Fiber|Combo-copper|Combo-Fiber)
+Value epp (Enabled|Disabled)
+Value link_quality (GOOD|FAIR|POOR|N/A)
+Value mac_address (([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]){2})
+Value bandwidth (\d+|-)
+Value duplex (Half|Full|Auto|-)
+Value autonegotiation (.+\s*)
+Value long_frame_size (\d+)
+Value inter_frame_gap (\d+)
+Value loopback_mode (N/A|SPB-VPN)
+Value bytes_received (\d+)
+Value rx_unicast_frames (\d+)
+Value rx_broadcast_frames (\d+)
+Value rx_mcast_frames (\d+)
+Value rx_undersize_frames (\d+)
+Value rx_oversize_frames (\d+)
+Value rx_lost_frames (\d+)
+Value rx_error_frames (\d+)
+Value rx_crc_error_frames (\d+)
+Value rx_alignments_err (\d+)
+Value bytes_xmitted (\d+)
+Value tx_unicast_frames (\d+)
+Value tx_broadcast_frames (\d+)
+Value tx_mcast_frames (\d+)
+Value tx_undersize_frames (\d+)
+Value tx_oversize_frames (\d+)
+Value tx_lost_frames (\d+)
+Value tx_collided_frames (\d+)
+Value tx_error_frames (\d+)
+Value collisions (\d+)
+Value late_collisions (\d+)
+Value exc_collisions (\d+)
+
+Start
+ ^Chassis\/Slot\/Port\s+:\s${chassis_slot_port}\s+$$
+ ^\sOperational Status\s+:\s${operation_status},$$
+ ^\sPort-Down\/Violation Reason:\s${port_down_violation_reason},$$
+ ^\sLast Time Link Changed\s+:\s${last_time_link_changed},$$
+ ^\sNumber of Status Change\s+:\s${number_of_status_change},$$
+ ^\sType\s+:\s${type},$$
+ ^\sSFP/XFP\s+:\s${sfp_xfp},$$
+ ^\sInterface Type\s+:\s${interface_type},$$
+ ^\sEPP\s+:\s${epp},$$
+ ^\sLink-Quality\s+:\s${link_quality},$$
+ ^\sMAC address\s+:\s${mac_address},$$
+ ^\sBandWidth \(Megabits\)\s+:\s+${bandwidth}\s*,\s+Duplex\s+:\s${duplex}\s*,$$
+ ^\sAutonegotiation\s+:\s+${autonegotiation},$$
+ ^\sLong Frame Size\(Bytes\)\s+:\s${long_frame_size},$$
+ ^\sInter Frame Gap\(Bytes\)\s+:\s${inter_frame_gap},$$
+ ^\sloopback mode\s+:\s${loopback_mode},$$ -> Rx
+
+Rx
+ ^\sRx\s+:$$
+ ^\sBytes Received\s*:\s+${bytes_received}, Unicast Frames\s*:\s+${rx_unicast_frames},$$
+ ^\sBroadcast Frames\s*:\s+${rx_broadcast_frames}, M-cast Frames\s*:\s+${rx_mcast_frames},$$
+ ^\sUnderSize Frames\s*:\s+${rx_undersize_frames}, OverSize Frames\s*:\s+${rx_oversize_frames},$$
+ ^\sLost Frames\s*:\s+${rx_lost_frames}, Error Frames\s*:\s+${rx_error_frames},$$
+ ^\sCRC Error Frames\s*:\s+${rx_crc_error_frames}, Alignments Err\s*:\s+${rx_alignments_err},$$ -> Tx
+
+Tx
+ ^\sTx\s+:$$
+ ^\sBytes Xmitted\s*:\s+${bytes_xmitted},\s*Unicast Frames\s*:\s+${tx_unicast_frames},$$
+ ^\sBroadcast Frames\s*:\s+${tx_broadcast_frames}, M-cast Frames\s*:\s+${tx_mcast_frames},$$
+ ^\sUnderSize Frames\s*:\s+${tx_undersize_frames}, OverSize Frames\s*:\s+${tx_oversize_frames},$$
+ ^\sLost Frames\s*:\s+${tx_lost_frames},\s*Collided Frames\s*:\s+${tx_collided_frames},$$
+ ^\sError Frames\s*:\s+${tx_error_frames},\s*Collisions\s*:\s+${collisions},$$
+ ^\sLate collisions\s*:\s+${late_collisions},\s*Exc-Collisions\s*:\s+${exc_collisions}$$ -> Record Start
+# ^. -> Error
\ No newline at end of file
diff --git a/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm
new file mode 100644
index 0000000000..61b85226fd
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_interfaces_status.tfsm
@@ -0,0 +1,23 @@
+Value Key,Required chassis_slot_port (\d\/\d+\/\d+[\w]*)
+Value admin_status (-|en|dis)
+Value autonego (-|en|dis)
+Value detected_speed (-|Auto|\d{0,})
+Value detected_duplex (-|Half|Full|Auto)
+Value detected_pause (-|Rx-N-Tx|Rx|Tx)
+Value detected_fec (-|FC|RS|DIS)
+Value configured_speed (-|Auto|\d{0,})
+Value configured_duplex (-|Half|Full|Auto)
+Value configured_pause (-|Rx-N-Tx|Rx|Tx)
+Value configured_fec (AUTO|DIS|FC|RS)
+Value trap_linkupdown (-|en|dis)
+Value eee (en[a]*|dis)
+
+Start
+ ^\s*Chas/\s+DETECTED-VALUES\s+CONFIGURED-VALUES\s*$$
+ ^\s*Slot/\s+Admin\s+Auto\s+Speed\s+Duplex\s+Pause\s+FEC\s+Speed\s+Duplex\s+Pause\s+FEC\s+Link\s*$$
+ ^\s*Port\s+Status\s+Nego\s+(Mbps)\s+Det\s+(Mbps)\s+Cfg\s+Trap\s+EEE\s*$$
+ ^[-+\+]+\s*$$ -> Interfaces
+
+Interfaces
+ ^\s*${chassis_slot_port}\s+${admin_status}\s+${autonego}\s+${detected_speed}\s+${detected_duplex}\s+${detected_pause}\s+${detected_fec}\s+${configured_speed}\s+${configured_duplex}\s+${configured_pause}\s+${configured_fec}\s+${trap_linkupdown}\s+${eee}\s*$$ -> Record
+# ^. -> Error
\ No newline at end of file
diff --git a/suzieq/config/textfsm_templates/aos_show_ip_interface.tfsm b/suzieq/config/textfsm_templates/aos_show_ip_interface.tfsm
new file mode 100644
index 0000000000..7cc0648735
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_ip_interface.tfsm
@@ -0,0 +1,17 @@
+Value name (\S+(\s\S+)*)
+Value ip_address ((?:[0-9]{1,3}\.){3}[0-9]{1,3})
+Value subnet_mask ((?:[0-9]{1,3}\.){3}[0-9]{1,3})
+Value status (UP|DOWN)
+Value forward (YES|NO)
+Value device (Loopback|EMP|unbound|(vlan\s\d+)|(service\s\d+)|GRE\stunnel|IPIP\stunnel)
+Value flags (D|)
+
+Start
+ ^Total (\d+) interfaces$$
+ ^ Flags (D=Directly-bound)$$
+ ^ Name IP Address Subnet Mask Status Forward Device Flags$$
+ ^[-+\+]+\s*$$ -> Interfaces
+
+Interfaces
+ ^${name}\s+${ip_address}\s+${subnet_mask}\s+${status}\s+${forward}\s+${device}\s*${flags}$$ -> Record
+# ^. -> Error
\ No newline at end of file
diff --git a/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm b/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm
new file mode 100644
index 0000000000..32f8dee0b0
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_ip_routes.tfsm
@@ -0,0 +1,15 @@
+Value Filldown dest_addr ((?:[0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]{1,2})
+Value Required gateway_addr ((?:[0-9]{1,3}\.){3}[0-9]{1,3})
+Value age ((\d+:\d+:\d+)|(\d+d\s*\d+h))
+Value protocol (\w+)
+
+Start
+ ^\+ = Equal cost multipath routes$$
+ ^ Total (\d) routes$$
+ ^ Dest Address Gateway Addr Age Protocol $$
+ ^[-+\+]+\s*$$ -> Routes
+
+Routes
+ ^\s+${dest_addr}\s+(\+)*${gateway_addr}\s+${age}\s+${protocol}\s*$$ -> Record
+ ^\s+(\+)*${gateway_addr}\s+${age}\s+${protocol}\s*$$ -> Record
+# ^. -> Error
diff --git a/suzieq/config/textfsm_templates/aos_show_linkagg.tfsm b/suzieq/config/textfsm_templates/aos_show_linkagg.tfsm
new file mode 100644
index 0000000000..50626135b8
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_linkagg.tfsm
@@ -0,0 +1,16 @@
+Value Key,Required number (\d{1,3})
+Value aggregate (Static|Dynamic|Loopback)
+Value snmp_id (\d+)
+Value size (\d+)
+Value admin_state (ENABLED|DISABLED)
+Value oper_state (UP|DOWN)
+Value att_ports (\d+)
+Value sel_ports (\d+)
+
+Start
+ ^Number\s+Aggregate\s+SNMP Id\s+Size\s+Admin State\s+Oper State\s+Att\/Sel Ports$$
+ ^[-+\+]+\s*$$ -> Linkagg
+
+Linkagg
+ ^\s+${number}\s+${aggregate}\s+${snmp_id}\s+${size}\s+${admin_state}\s+${oper_state}\s+${att_ports}\s+${sel_ports}$$ -> Record
+# ^. -> Error
\ No newline at end of file
diff --git a/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm b/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm
new file mode 100644
index 0000000000..f5d29e0ed4
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_linkagg_port.tfsm
@@ -0,0 +1,16 @@
+Value Key,Required slot_port (\d\/\d+\/\d+[\w]*)
+Value aggregate (Static|Dynamic)
+Value snmp_id (\d+)
+Value status (ATTACHED|CONFIGURED|PENDING|SELECTED|RESERVED)
+Value agg (\d{0,3}|NONE)
+Value oper (UP|DOWN)
+Value link (UP|DOWN)
+Value prim (YES|NO|UNK)
+
+Start
+ ^Chassis/Slot/Port\s+Aggregate\s+SNMP Id\s+Status\s+Agg\s+Oper\s+Link\s+Prim
+ ^[-+\+]+\s*$$ -> Linkagg_port
+
+Linkagg_port
+ ^\s+${slot_port}\s+${aggregate}\s+${snmp_id}\s+${status}\s+${agg}\s+${oper}\s+${link}\s+${prim}\s*$$ -> Record
+# ^. -> Error
\ No newline at end of file
diff --git a/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm b/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm
new file mode 100644
index 0000000000..638ef50770
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_mac_learning.tfsm
@@ -0,0 +1,17 @@
+Value domain (VLAN|SPB|VXLAN|L2GRE)
+Value id (([\d]+(:[\d+]+)?))
+Value mac_address (([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]){2})
+Value type (dynamic|static|bmac)
+Value operation (bridging|filtering|servicing|quarantined)
+Value interface ((sap:|sdp:)?((\d+\/\d+\/\d+(\w)?)|(\d\/\d+)|(\d+))(:\d+)?)
+
+Start
+ ^Legend: Mac Address: \* = address not valid,$$
+ ^\s+ Mac Address: \& = duplicate static address,$$
+ ^ Domain Vlan/SrvcId[ISId/vnId] Mac Address Type Operation Interface$$
+ ^[-+\+]+\s*$$ -> Mac
+
+Mac
+ ^\s+${domain}\s+${id}\s+${mac_address}\s+${type}\s+${operation}\s+${interface}\s*$$ -> Record
+ ^\s+Total number of Valid MAC addresses above = (\d+)
+# ^. -> Error
diff --git a/suzieq/config/textfsm_templates/aos_show_system.tfsm b/suzieq/config/textfsm_templates/aos_show_system.tfsm
new file mode 100644
index 0000000000..050c2dd0cc
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_system.tfsm
@@ -0,0 +1,30 @@
+Value description (.+)
+Value object_id (.+)
+Value up_time (.+)
+Value contact (.+)
+Value name (.+)
+Value location (.+)
+Value services (.+)
+Value date_time (.+)
+Value available (\d*)
+Value comments (\w+)
+
+Start
+ ^System: -> System
+
+System
+ ^\s+Description:\s+${description},$$
+ ^\s+Object\sID:\s+${object_id},$$
+ ^\s+Up\sTime:\s+${up_time},$$
+ ^\s+Contact:\s+${contact},$$
+ ^\s+Name:\s+${name},$$
+ ^\s+Location:\s+${location},$$
+ ^\s+Services:\s+${services},$$
+ ^\s+Date & Time:\s+${date_time}$$
+ ^Flash Space: -> FlashSpace
+
+FlashSpace
+ ^\s+Available \(bytes\):\s+${available},$$
+ ^\s+Comments\s+:\s+${comments}$$
+ ^\s+Primary CMM:$$
+# ^. -> Error
diff --git a/suzieq/config/textfsm_templates/aos_show_vlan.tfsm b/suzieq/config/textfsm_templates/aos_show_vlan.tfsm
new file mode 100644
index 0000000000..c737229477
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_vlan.tfsm
@@ -0,0 +1,15 @@
+Value vlannumber (\d+)
+Value vlantype (std|vstk|router|mvrp|ipmv|pvlan-p|pvlan-c|pvlan-i|fcoe|vcm)
+Value vlanadmstatus (Ena|Dis)
+Value vlanoperstatus (Ena|Dis)
+Value vlanrouterstatus (Ena|Dis)
+Value vlanmtu (\d+)
+Value vlandescription ((\S+\s*)+\S+)
+
+Start
+ ^\s*vlan\s+type\s+admin\s+oper\s+ip\s+mtu\s+name\s$$
+ ^[-+\+]+\s*$$ -> VLAN
+
+VLAN
+ ^\s*${vlannumber}\s+${vlantype}\s+${vlanadmstatus}\s+${vlanoperstatus}\s+${vlanrouterstatus}\s+${vlanmtu}\s+${vlandescription}\s*$$ -> Record
+# ^. -> Error
diff --git a/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm b/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm
new file mode 100644
index 0000000000..78fb381691
--- /dev/null
+++ b/suzieq/config/textfsm_templates/aos_show_vlan_members.tfsm
@@ -0,0 +1,12 @@
+Value vlan (\d+)
+Value port ((\d{1,2}\/)+\d*)
+Value type (default|tagged|untagged|qtagged|dynamic|mirror|mirrored|spb|unpUntag|unpQntag)
+Value status (inactive|forwarding|blocking)
+
+Start
+ ^\s*vlan\s+port\s+type\s+status\s*$$
+ ^[-+\+]+\s*$$ -> MEMBERS
+
+MEMBERS
+ ^\s+${vlan}\s+${port}\s+${type}\s+${status}$$ -> Record
+# ^. -> Error
diff --git a/suzieq/config/vlan.yml b/suzieq/config/vlan.yml
index a028bc121f..b8ff800b68 100644
--- a/suzieq/config/vlan.yml
+++ b/suzieq/config/vlan.yml
@@ -8,6 +8,17 @@ show-fields:
- interfaces
apply:
+ aos:
+ version: all
+ merge: False
+ command:
+ - command: show vlan
+ textfsm: textfsm_templates/aos_show_vlan.tfsm
+ _entryType: vlan
+ - command: show vlan members
+ textfsm: textfsm_templates/aos_show_vlan_members.tfsm
+ _entryType: members
+
cumulus:
version: all
command: /sbin/bridge -c vlan show
diff --git a/suzieq/poller/worker/inventory/inventory.py b/suzieq/poller/worker/inventory/inventory.py
index 974b012407..ee875cddca 100644
--- a/suzieq/poller/worker/inventory/inventory.py
+++ b/suzieq/poller/worker/inventory/inventory.py
@@ -194,7 +194,7 @@ async def _init_nodes(self, inventory_list:
if newnode.devtype == "unsupported":
logger.error(
f'Unsupported device type for '
- f'{newnode.address}.{newnode.port}'
+ f'{newnode.address}:{newnode.port}'
)
elif not newnode.devtype:
logger.warning('Unable to determine device type for '
diff --git a/suzieq/poller/worker/nodes/node.py b/suzieq/poller/worker/nodes/node.py
index 112e17487d..667ca80fc9 100644
--- a/suzieq/poller/worker/nodes/node.py
+++ b/suzieq/poller/worker/nodes/node.py
@@ -6,6 +6,7 @@
import logging
import random
from http import HTTPStatus
+from itertools import chain
import json
import re
import operator
@@ -30,6 +31,12 @@
IOS_TIME_AFTER_DISCOVERY = 60 # time to wait after ios(xe,xr) auto-discovery
+ERRMSG_TO_STATUS_MAP = {
+ 'aos': [
+ (re.compile(r'.*[\r\n]?ERROR:\s*.*', re.IGNORECASE), 1)
+ ],
+}
+
TNode = TypeVar('TNode', bound='Node')
@@ -342,13 +349,11 @@ async def _post_result(self, service_callback: asyncio.coroutine,
await service_callback(result, cb_token)
async def _parse_device_type_hostname(self, output, _) -> None:
- devtype = ""
+ devtype = 'unsupported'
hostname = None
version_str = '0.0.0' # default that's possibly never used
if output[0]["status"] == 0:
- # don't keep trying if we're connected to an unsupported dev
- devtype = 'unsupported'
data = output[0]["data"]
version_str = data
@@ -389,7 +394,10 @@ async def _parse_device_type_hostname(self, output, _) -> None:
f'{self.address}: Got unrecognized device show version: '
f'{data}')
- if devtype.startswith("junos"):
+ if devtype == "aos":
+ # We'll fill in the hostname when the node gets re-init
+ hostname = None
+ elif devtype.startswith("junos"):
hmatch = re.search(r'Hostname:\s+(\S+)\n', data)
if hmatch:
hostname = hmatch.group(1)
@@ -414,9 +422,7 @@ async def _parse_device_type_hostname(self, output, _) -> None:
hostname = hgrp.group(1)
else:
hostname = self.address
-
- elif (len(output) > 1) and (output[1]["status"] == 0):
- devtype = 'unsupported'
+ elif len(output) > 1 and output[1]["status"] == 0:
data = output[1]["data"]
if data:
if "Cumulus Linux" in data:
@@ -428,6 +434,11 @@ async def _parse_device_type_hostname(self, output, _) -> None:
# Hostname is the last line of the output
if len(data.strip()) > 0:
hostname = data.splitlines()[-1].strip()
+ elif len(output) > 2 and output[2]["status"] == 0:
+ data = output[2]["data"]
+ version_str = data
+ if 'Alcatel-Lucent' in data:
+ devtype = "aos"
if devtype == 'unsupported':
if not self.current_exception:
@@ -500,10 +511,13 @@ async def _get_device_type_hostname(self):
# There isn't that much of a difference in running two commands versus
# running them one after the other as this involves an additional ssh
# setup time. show version works on most networking boxes and
- # hostnamectl on Linux systems. That's all we support today.
+ # cat /etc/os-release on Linux systems, while show system for AOS.
+ # That's all we support today. Do not revert the order since IOS*
+ # closes the connection after the first command.
await self._exec_cmd(self._parse_device_type_hostname,
["show version",
- "cat /etc/os-release && hostname"],
+ "cat /etc/os-release && hostname",
+ "show system"],
None, 'text', only_one=True)
def _set_devtype(self, devtype: str, version_str: str) -> None:
@@ -524,7 +538,9 @@ def _set_devtype(self, devtype: str, version_str: str) -> None:
if self.devtype != devtype:
self.devtype = devtype
- if self.devtype == "cumulus":
+ if self.devtype == "aos":
+ self.__class__ = AosNode
+ elif self.devtype == "cumulus":
self.__class__ = CumulusNode
elif self.devtype == "eos":
self.__class__ = EosNode
@@ -905,6 +921,33 @@ def _schedule_discovery_attempt(self):
f'from {next_time}'
)
+ def _guess_cmd_status_code(self, output: str, status_code: int) -> int:
+ """Some devices always return status code 0 even when an error
+ occurred. This function uses the regex stored in ERRMSG_TO_STATUS_MAP
+ to guess a better and more standard status code given the output.
+ When the device has not already been discovered, it will try all the
+ available regex until one matches. While when the device is known, we
+ get only the device-specific regex.
+
+ Args:
+ output (str): the output of the command.
+ status_code (int): the status code of the command
+
+ Returns:
+ int: the status code detected from the output.
+ """
+ if not self.devtype:
+ patterns = chain.from_iterable(ERRMSG_TO_STATUS_MAP.values())
+ else:
+ patterns = ERRMSG_TO_STATUS_MAP.get(self.devtype)
+
+ if patterns:
+ for p, p_exit_code in patterns:
+ if re.match(p, output):
+ return p_exit_code
+
+ return status_code
+
# pylint: disable=unused-argument
async def _ssh_gather(self, service_callback: Callable,
cmd_list: List[str], cb_token: RsltToken,
@@ -959,9 +1002,14 @@ async def _ssh_gather(self, service_callback: Callable,
'%s recovered from previous exception',
self.hostname)
self.current_exception = None
+
+ exit_status = self._guess_cmd_status_code(
+ output.stdout,
+ output.exit_status
+ )
result.append(self._create_result(
- cmd, output.exit_status, output.stdout, cmd_timestamp))
- if (output.exit_status == 0) and only_one:
+ cmd, exit_status, output.stdout, cmd_timestamp))
+ if exit_status == 0 and only_one:
break
except Exception as e:
self.current_exception = e
@@ -1519,6 +1567,59 @@ def _extract_nos_version(self, data) -> None:
self.version = data['version']
+class AosNode(Node):
+ '''Alcatel AOS Node-specific implementation'''
+
+ async def _rest_connect(self):
+ raise NotImplementedError(
+ f'{self.address}: REST transport is not supported')
+
+ async def _rest_gather(self, service_callback, cmd_list, cb_token,
+ oformat='json', timeout=None, reconnect=True):
+ raise NotImplementedError(
+ f'{self.address}: REST transport is not supported')
+
+ async def _parse_init_dev_data_devtype(self, output, cb_token) -> None:
+
+ if output[0]['status'] == 0:
+ data = output[0]['data']
+
+ # Extract hostname
+ hname = re.search(r'\s+Name:\s+(\S+),', data)
+ hostname = hname.group(1)
+
+ if hostname:
+ self._set_hostname(hostname)
+
+ uptime_result = re.search(r'\s+Up Time:\s+(\d{1,3})\s'
+ r'days\s(\d{1,2})\s'
+ r'hours\s(\d{1,2})\s'
+ r'minutes\sand\s(\d{1,2})\s'
+ r'seconds,',
+ data)
+ days = uptime_result.group(1).strip()
+ hours = uptime_result.group(2).strip()
+ minutes = uptime_result.group(3).strip()
+ seconds = uptime_result.group(4).strip()
+ upsecs = 86400 * int(days) + 3600 * int(hours) + \
+ 60 * int(minutes) + int(seconds)
+ self.bootupTimestamp = int(
+ int(time.time()*1000) - float(upsecs)*1000)
+
+ self._extract_nos_version(data)
+
+ async def _fetch_init_dev_data_devtype(self, reconnect: bool):
+ """Fill in the boot time of the node by executing certain cmds"""
+ await self._exec_cmd(self._parse_init_dev_data,
+ ["show system"], None, 'text',
+ reconnect=reconnect)
+
+ def _extract_nos_version(self, data: str) -> None:
+ version_result = re.search(r'((\d+\.){3,}.*?(?=,))', data)
+ version = version_result.group(1)
+ self.version = version
+
+
class CumulusNode(Node):
'''Cumulus Node specific implementation'''
diff --git a/suzieq/poller/worker/services/arpnd.py b/suzieq/poller/worker/services/arpnd.py
index 0045a9aa57..a6d4452d00 100644
--- a/suzieq/poller/worker/services/arpnd.py
+++ b/suzieq/poller/worker/services/arpnd.py
@@ -10,6 +10,21 @@
class ArpndService(Service):
"""arpnd service. Different class because minor munging of output"""
+ def _clean_aos_data(self, processed_data, _):
+
+ entry, = processed_data
+
+ if entry["type"] == "STATIC":
+ entry["state"] = "permanent"
+ elif entry["type"] == "DYNAMIC":
+ entry["state"] = "reachable"
+
+ entry['ipAddress'] = entry['ip_address']
+ entry['macaddr'] = entry['hardware_addr']
+ entry['oif'] = entry['port']
+
+ return processed_data
+
def _clean_linux_data(self, processed_data, _):
for entry in processed_data:
entry["remote"] = entry["remote"] == "offload"
diff --git a/suzieq/poller/worker/services/device.py b/suzieq/poller/worker/services/device.py
index f51337b854..2f64bc236c 100644
--- a/suzieq/poller/worker/services/device.py
+++ b/suzieq/poller/worker/services/device.py
@@ -25,6 +25,44 @@ def _common_data_cleaner(self, processed_data, raw_data):
return processed_data
+ def _clean_aos_data(self, processed_data, raw_data):
+ if processed_data:
+ entry, = processed_data
+
+ description_result = re.search(r'^Alcatel-Lucent\sEnterprise\s'
+ r'(\S+)\s((\d+\.){3,}.*?(?=,)),'
+ r'\s\w+\s\d{1,2},\s\d{4,}.',
+ entry['description']
+ )
+ model = description_result.group(1)
+ version = description_result.group(2)
+
+ # sample output: '0 days 0 hours 3 minutes and 28 seconds'
+ uptime_result = re.search(r'(\d+) days (\d{1,2}) hours (\d{1,2})'
+ r' minutes and (\d{1,2}) seconds',
+ entry['up_time']
+ )
+ days = uptime_result.group(1)
+ hours = uptime_result.group(2)
+ minutes = uptime_result.group(3)
+ seconds = uptime_result.group(4)
+
+ upsecs = 24 * 3600 * int(days) + 3600 * int(hours) + 60 \
+ * int(minutes) + int(seconds)
+
+ if upsecs:
+ bootupTimestamp = int(int(raw_data[0]["timestamp"])
+ / 1000 - upsecs)
+
+ entry['bootupTimestamp'] = bootupTimestamp
+ entry['memory'] = int(entry['available'])/1024
+ entry['os'] = 'aos'
+ entry['model'] = model
+ entry['vendor'] = "Alcatel-Lucent Enterprise"
+ entry['version'] = version
+
+ return self._common_data_cleaner(processed_data, raw_data)
+
def _clean_linux_data(self, processed_data, raw_data):
for entry in processed_data:
diff --git a/suzieq/poller/worker/services/interfaces.py b/suzieq/poller/worker/services/interfaces.py
index 38e118542f..8cabda5702 100644
--- a/suzieq/poller/worker/services/interfaces.py
+++ b/suzieq/poller/worker/services/interfaces.py
@@ -66,6 +66,180 @@ def _textfsm_valid_speed_value(self, entry):
"""Return speed value or a missing value for textfsm retrieved data"""
return self._speed_field_check(entry, '')
+ def _clean_aos_data(self, processed_data, _):
+
+ entry_new = []
+ entry_interfaces_status = []
+ entry_interfaces = []
+ entry_vlan_members = []
+ entry_ip_interface = []
+ # entry_linkagg_ports = []
+
+ entry_interfaces_status = [
+ item for item in processed_data
+ if item.get('_entryType') == 'interfaces_status'
+ ]
+ entry_interfaces = [
+ item for item in processed_data
+ if item.get('_entryType') == 'interfaces'
+ ]
+ entry_ip_interface = [
+ item for item in processed_data
+ if item.get('_entryType') == 'ip_interface'
+ ]
+ entry_vlan_members = [
+ item for item in processed_data
+ if item.get('_entryType') == 'members'
+ ]
+ entry_linkagg = [
+ item for item in processed_data
+ if item.get('_entryType') == 'linkagg'
+ ]
+ # entry_linkagg_ports = [
+ # item for item in processed_data
+ # if item.get('_entryType') == 'linkagg_ports'
+ # ]
+
+ # linkagg interfaces
+ for linkagg in entry_linkagg:
+
+ entry_dict = {}
+
+ if linkagg['admin_state'] == "ENABLED":
+ adminState = "up"
+ else:
+ adminState = "down"
+
+ ifname = "0/" + linkagg['number']
+ state = linkagg['oper_state']
+
+ vlans = [
+ vlan_member['vlan'] for vlan_member in entry_vlan_members
+ if vlan_member['port'] == ifname
+ if vlan_member['type'] in ["default", "untagged"]
+ ]
+ vlanList = [
+ vlan_member['vlan'] for vlan_member in entry_vlan_members
+ if vlan_member['port'] == ifname
+ if vlan_member['type'] in ["unpUntag", "tagged", "qtagged"]
+ ]
+
+ if len(vlans) < 1:
+ vlan = "None"
+ else:
+ vlan = vlans[0]
+
+ if len(vlanList) < 1:
+ vlanList = "None"
+
+ entry_dict = {
+ 'adminState': str(adminState).lower(),
+ 'ifname': str(ifname).lower(),
+ 'state': str(state).lower(),
+ 'type': 'bond',
+ 'vlan': vlan,
+ 'vlanList': vlanList
+ }
+
+ entry_new.append(entry_dict)
+
+ # vlan interfaces
+ for ip_interface in entry_ip_interface:
+
+ entry_dict = {}
+ ip_address = []
+
+ adminState = ip_interface['status']
+ device = ip_interface['device']
+ forward = ip_interface['forward']
+ ifname = ip_interface['name']
+ ip_address.append(ip_interface['ip_address'])
+
+ if forward == "YES":
+ state = "up"
+ else:
+ state = "down"
+
+ if "vlan" in device or "service" in device:
+ device = str(device).split()
+ interface_type = device[0]
+ vlan = device[1]
+ else:
+ interface_type = device
+ vlan = ""
+
+ if "EMP" in device:
+ interface_type = 'ethernet'
+
+ entry_dict = {
+ 'adminState': str(adminState).lower(),
+ 'ifname': str(ifname).lower(),
+ 'ipAddressList': ip_address,
+ 'state': str(state).lower(),
+ 'type': str(interface_type).lower(),
+ 'vlan': vlan
+ }
+
+ entry_new.append(entry_dict)
+
+ # ethernet interfaces
+ for interfaces_status, interfaces \
+ in zip(entry_interfaces_status, entry_interfaces):
+
+ entry_dict = {}
+
+ adminState = interfaces_status['admin_status']
+ ifname = interfaces_status['chassis_slot_port']
+ interfaceMac = interfaces['mac_address']
+ mtu = interfaces['long_frame_size']
+ numChanges = interfaces['number_of_status_change']
+ reason = interfaces['port_down_violation_reason']
+ speed = self._textfsm_valid_speed_value(interfaces_status)
+ state = interfaces['operation_status']
+ type_int = interfaces['type']
+
+ vlans = [
+ vlan_member['vlan'] for vlan_member in entry_vlan_members
+ if vlan_member['port'] == ifname
+ if vlan_member['type'] in ["default", "untagged"]
+ ]
+ vlanList = [
+ vlan_member['vlan'] for vlan_member in entry_vlan_members
+ if vlan_member['port'] == ifname
+ if vlan_member['type'] in ["unpUntag", "tagged", "qtagged"]
+ ]
+
+ if len(vlans) < 1:
+ vlan = "None"
+ else:
+ vlan = vlans[0]
+
+ if len(vlanList) < 1:
+ vlanList = "None"
+
+ if adminState == "en":
+ adminState = "up"
+ else:
+ adminState = "down"
+
+ entry_dict = {
+ 'adminState': adminState,
+ 'ifname': ifname,
+ 'interfaceMac': interfaceMac,
+ 'mtu': mtu,
+ 'numChanges': numChanges,
+ 'reason': reason,
+ 'speed': speed,
+ 'state': state,
+ 'type': str(type_int).lower(),
+ 'vlan': vlan,
+ 'vlanList': vlanList
+ }
+
+ entry_new.append(entry_dict)
+
+ return entry_new
+
def _clean_eos_data(self, processed_data, _):
"""Clean up EOS interfaces output"""
@@ -73,7 +247,7 @@ def _clean_eos_data(self, processed_data, _):
drop_indices = []
vlan_entries = {} # Needed to fix the anycast MAC entries
- # pylint: disable=too-many-nested-blocks
+ # pylint: disable=too-many-nested-blockss
for i, entry in enumerate(processed_data):
if entry['type'] == 'vrf':
diff --git a/suzieq/poller/worker/services/inventory.py b/suzieq/poller/worker/services/inventory.py
index 847d6c6d06..39b05bdced 100644
--- a/suzieq/poller/worker/services/inventory.py
+++ b/suzieq/poller/worker/services/inventory.py
@@ -11,6 +11,60 @@ class InventoryService(Service):
def _clean_data_common(self, processed_data, _):
return processed_data
+ def _clean_aos_data(self, processed_data, _):
+
+ entry_new = []
+ entry_chassis = []
+ entry_system = []
+
+ entry_chassis = [
+ item for item in processed_data
+ if item.get('_entryType') == 'chassis'
+ ]
+ entry_system = [
+ item for item in processed_data
+ if item.get('_entryType') == 'system'
+ ]
+
+ # extract single list item (dict)
+ system, = entry_system
+
+ for entry in entry_chassis:
+
+ entry_dict = {}
+
+ model = entry['model_name']
+ serial = entry['serial_number']
+ partNum = entry['part_number']
+ vendor = "Alcatel-Lucent Enterprise"
+ type_inv = entry['description']
+ partType = entry['model_type']
+
+ version_result = re.search(r'(\d+\.){3,}.*?(?=,)',
+ system.get('description'))
+ version = version_result.group(0)
+
+ if entry.get('admin_status') == 'POWER ON' \
+ and entry.get('operational_status') == 'UP':
+ status = 'up'
+ else:
+ status = 'down'
+
+ entry_dict = {
+ 'model': model,
+ 'status': status,
+ 'serial': serial,
+ 'partNum': partNum,
+ 'vendor': vendor,
+ 'type': type_inv,
+ 'partType': partType,
+ 'version': version,
+ }
+
+ entry_new.append(entry_dict)
+
+ return entry_new
+
def _clean_eos_data(self, processed_data, _):
new_data = []
for entry in processed_data:
diff --git a/suzieq/poller/worker/services/macs.py b/suzieq/poller/worker/services/macs.py
index b69e660504..a509b93b42 100644
--- a/suzieq/poller/worker/services/macs.py
+++ b/suzieq/poller/worker/services/macs.py
@@ -62,6 +62,36 @@ def _add_mackey_protocol(self, entry):
else:
entry['mackey'] = '0'
+ def _clean_aos_data(self, processed_data, _):
+
+ entry_new = []
+
+ for entry in processed_data:
+
+ entry_dict = {}
+
+ flags = entry['operation']
+ macaddr = entry['mac_address']
+ bd = entry['domain']
+ oif = entry['interface']
+ protocol = entry['type']
+ vlan = entry['id']
+
+ entry_dict = {
+ "flags": flags,
+ "macaddr": macaddr,
+ "bd": bd,
+ "oif": oif,
+ "protocol": protocol,
+ "vlan": vlan,
+ }
+
+ self._add_mackey_protocol(entry_dict)
+
+ entry_new.append(entry_dict)
+
+ return entry_new
+
def _clean_linux_data(self, processed_data, _):
drop_indices = []
macentries = {}
diff --git a/suzieq/poller/worker/services/routes.py b/suzieq/poller/worker/services/routes.py
index 93c0797dc5..6ba533ad51 100644
--- a/suzieq/poller/worker/services/routes.py
+++ b/suzieq/poller/worker/services/routes.py
@@ -35,6 +35,56 @@ def _common_data_cleaner(self, processed_data, _):
return processed_data
+ def _clean_aos_data(self, processed_data, _):
+
+ entry_new = []
+ entry_arp = []
+ entry_ip_interface = []
+ entry_ip_routes = []
+
+ entry_arp = [
+ item for item in processed_data
+ if item.get('_entryType') == 'arp'
+ ]
+
+ entry_ip_interface = [
+ item for item in processed_data
+ if item.get('_entryType') == 'ip_interface'
+ ]
+
+ entry_ip_routes = [
+ item for item in processed_data
+ if item.get('_entryType') == 'ip_routes'
+ ]
+
+ for ip_route in entry_ip_routes:
+
+ entry_dict = {}
+ oifs = []
+
+ oifs += [
+ arp["interface"]
+ for arp in entry_arp
+ if arp["ip_address"] == ip_route["gateway_addr"]
+ ]
+ oifs += [
+ interface["name"]
+ for interface in entry_ip_interface
+ if interface["ip_address"] == ip_route["gateway_addr"]
+ ]
+
+ entry_dict = {
+ 'nexthopIps': [ip_route['gateway_addr']],
+ 'oifs': oifs,
+ 'prefix': ip_route['dest_addr'],
+ 'protocol': ip_route['protocol'],
+ 'vrf': 'default'
+ }
+
+ entry_new.append(entry_dict)
+
+ return entry_new
+
def _clean_eos_data(self, processed_data, _):
'''Massage EVPN routes'''
for entry in processed_data:
diff --git a/suzieq/poller/worker/services/vlan.py b/suzieq/poller/worker/services/vlan.py
index adcddc2a39..d5f0d85079 100644
--- a/suzieq/poller/worker/services/vlan.py
+++ b/suzieq/poller/worker/services/vlan.py
@@ -15,6 +15,50 @@ def clean_json_input(self, data):
return data['data']
+ def _clean_aos_data(self, processed_data, _):
+
+ entry_new = []
+ entry_vlan = []
+ entry_vlan_members = []
+
+ entry_vlan = [
+ item for item in processed_data
+ if item.get("_entryType") == "vlan"
+ ]
+ entry_vlan_members = [
+ item for item in processed_data
+ if item.get("_entryType") == "members"
+ ]
+
+ for entry in entry_vlan:
+
+ entry_dict = {}
+
+ vlan = entry['vlannumber']
+ vlanName = entry['vlandescription']
+
+ interfaces = [
+ member.get('port') for member in entry_vlan_members
+ if member.get('vlan') == vlan
+ ]
+
+ if entry.get('vlanadmstatus') == 'Ena' \
+ and entry.get('vlanoperstatus') == 'Ena':
+ state = 'active'
+ else:
+ state = 'suspended'
+
+ entry_dict = {
+ "vlanName": vlanName,
+ "state": state,
+ "vlan": vlan,
+ "interfaces": interfaces,
+ }
+
+ entry_new.append(entry_dict)
+
+ return entry_new
+
def _clean_eos_data(self, processed_data, _):
'''Massage the interface output'''
diff --git a/suzieq/restServer/query.py b/suzieq/restServer/query.py
index b004ba3030..aa7ea7ce42 100755
--- a/suzieq/restServer/query.py
+++ b/suzieq/restServer/query.py
@@ -92,7 +92,7 @@ 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):
diff --git a/suzieq/shared/utils.py b/suzieq/shared/utils.py
index 6b2aa849b6..e1870fa9fa 100644
--- a/suzieq/shared/utils.py
+++ b/suzieq/shared/utils.py
@@ -907,9 +907,9 @@ def init_logger(logname: str,
def known_devtypes() -> list:
"""Returns the list of known dev types"""
- return (['cumulus', 'eos', 'iosxe', 'iosxr', 'ios', 'junos-mx',
- 'junos-qfx', 'junos-qfx10k', 'junos-ex', 'junos-es', 'junos-evo',
- 'linux', 'nxos', 'sonic', 'panos'])
+ return(['aos', 'cumulus', 'eos', 'iosxe', 'iosxr', 'ios', 'junos-mx',
+ 'junos-qfx', 'junos-qfx10k', 'junos-ex', 'junos-es', 'junos-evo',
+ 'linux', 'nxos', 'sonic', 'panos'])
def humanize_timestamp(field: pd.Series, tz=None) -> pd.Series:
diff --git a/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/85b714a1a22c4ace8baff46fea84bafa-0.parquet b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/85b714a1a22c4ace8baff46fea84bafa-0.parquet
new file mode 100644
index 0000000000..153a078b10
Binary files /dev/null and b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/85b714a1a22c4ace8baff46fea84bafa-0.parquet differ
diff --git a/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/51501146339242a981b2afd7252017c9-0.parquet b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/51501146339242a981b2afd7252017c9-0.parquet
new file mode 100644
index 0000000000..b2741f87bb
Binary files /dev/null and b/tests/data/parquet/arpnd/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/51501146339242a981b2afd7252017c9-0.parquet differ
diff --git a/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/36c1e91e8df2462ba660b52d5b9fdd89-0.parquet b/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/36c1e91e8df2462ba660b52d5b9fdd89-0.parquet
new file mode 100644
index 0000000000..97df2f6e68
Binary files /dev/null and b/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/36c1e91e8df2462ba660b52d5b9fdd89-0.parquet differ
diff --git a/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c939fe6bec5240899119898937ad6b96-0.parquet b/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c939fe6bec5240899119898937ad6b96-0.parquet
new file mode 100644
index 0000000000..b1b799571a
Binary files /dev/null and b/tests/data/parquet/device/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c939fe6bec5240899119898937ad6b96-0.parquet differ
diff --git a/tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/9bb3b26112674bf6b016d36ba0479403-0.parquet b/tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/9bb3b26112674bf6b016d36ba0479403-0.parquet
new file mode 100644
index 0000000000..b9cd09760e
Binary files /dev/null and b/tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/9bb3b26112674bf6b016d36ba0479403-0.parquet differ
diff --git a/tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/0c6b718a8fee41e2a2bbc0a01c7199d0-0.parquet b/tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/0c6b718a8fee41e2a2bbc0a01c7199d0-0.parquet
new file mode 100644
index 0000000000..056c11fe6c
Binary files /dev/null and b/tests/data/parquet/interfaces/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/0c6b718a8fee41e2a2bbc0a01c7199d0-0.parquet differ
diff --git a/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/0bc8e37826cb4c07951a069a1cbf1265-0.parquet b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/0bc8e37826cb4c07951a069a1cbf1265-0.parquet
new file mode 100644
index 0000000000..53acce7227
Binary files /dev/null and b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/0bc8e37826cb4c07951a069a1cbf1265-0.parquet differ
diff --git a/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/ac51149e1855475b8dd15feea6e2aef6-0.parquet b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/ac51149e1855475b8dd15feea6e2aef6-0.parquet
new file mode 100644
index 0000000000..ed8186cb64
Binary files /dev/null and b/tests/data/parquet/inventory/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/ac51149e1855475b8dd15feea6e2aef6-0.parquet differ
diff --git a/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/ba1faa98705c47f698a6732a94874476-0.parquet b/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/ba1faa98705c47f698a6732a94874476-0.parquet
new file mode 100644
index 0000000000..200fd7377c
Binary files /dev/null and b/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-001-1/ba1faa98705c47f698a6732a94874476-0.parquet differ
diff --git a/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/a784f7b33904456396afb8567d0e58cb-0.parquet b/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/a784f7b33904456396afb8567d0e58cb-0.parquet
new file mode 100644
index 0000000000..7fd4390580
Binary files /dev/null and b/tests/data/parquet/macs/sqvers=1.0/namespace=aos/hostname=net-lab-swi-dist/a784f7b33904456396afb8567d0e58cb-0.parquet differ
diff --git a/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/c859cdee2b6243d1b9f13e2741cfd4cc-0.parquet b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/c859cdee2b6243d1b9f13e2741cfd4cc-0.parquet
new file mode 100644
index 0000000000..f4c9a010e4
Binary files /dev/null and b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/c859cdee2b6243d1b9f13e2741cfd4cc-0.parquet differ
diff --git a/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/9f060c021d6e4c6689b9c378c0ccd5c6-0.parquet b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/9f060c021d6e4c6689b9c378c0ccd5c6-0.parquet
new file mode 100644
index 0000000000..ec206ca76f
Binary files /dev/null and b/tests/data/parquet/routes/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/9f060c021d6e4c6689b9c378c0ccd5c6-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/09fbba059bab45d38be16b453a58187c-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/09fbba059bab45d38be16b453a58187c-0.parquet
new file mode 100644
index 0000000000..a3e49f297a
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/09fbba059bab45d38be16b453a58187c-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/179a3e69b563427f92f56c6f4ba16dcf-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/179a3e69b563427f92f56c6f4ba16dcf-0.parquet
new file mode 100644
index 0000000000..b11fa7aae5
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/179a3e69b563427f92f56c6f4ba16dcf-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/4ab842ebf4c84babb433f5d3f7545555-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/4ab842ebf4c84babb433f5d3f7545555-0.parquet
new file mode 100644
index 0000000000..0738bdac2c
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/4ab842ebf4c84babb433f5d3f7545555-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/54e109d23c064b23b1d5ad77d742f205-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/54e109d23c064b23b1d5ad77d742f205-0.parquet
new file mode 100644
index 0000000000..85e30bc5fe
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/54e109d23c064b23b1d5ad77d742f205-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6f905d010c584b00b73931b63284a2ec-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6f905d010c584b00b73931b63284a2ec-0.parquet
new file mode 100644
index 0000000000..813a428181
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/6f905d010c584b00b73931b63284a2ec-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a96f945108b64cf78d4972609aff9560-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a96f945108b64cf78d4972609aff9560-0.parquet
new file mode 100644
index 0000000000..98db5c4bdf
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/a96f945108b64cf78d4972609aff9560-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/d6cb6c9fbbf74afa8188887ea3d1b3a0-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/d6cb6c9fbbf74afa8188887ea3d1b3a0-0.parquet
new file mode 100644
index 0000000000..57762e7d8c
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-001-1/d6cb6c9fbbf74afa8188887ea3d1b3a0-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/17fa0fc6648942b8a540aab01950713a-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/17fa0fc6648942b8a540aab01950713a-0.parquet
new file mode 100644
index 0000000000..1c30e1defd
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/17fa0fc6648942b8a540aab01950713a-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/23025dda2afb46faa44d2e6990b7a0c5-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/23025dda2afb46faa44d2e6990b7a0c5-0.parquet
new file mode 100644
index 0000000000..04c6aae7af
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/23025dda2afb46faa44d2e6990b7a0c5-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/250c4f5cc57e480c910f33d2e767fc71-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/250c4f5cc57e480c910f33d2e767fc71-0.parquet
new file mode 100644
index 0000000000..608284c497
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/250c4f5cc57e480c910f33d2e767fc71-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/7568202765174900b2d4dbbb3fb72820-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/7568202765174900b2d4dbbb3fb72820-0.parquet
new file mode 100644
index 0000000000..5083f5dcdb
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/7568202765174900b2d4dbbb3fb72820-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/9cfded43801645b1bd65f923d5e81523-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/9cfded43801645b1bd65f923d5e81523-0.parquet
new file mode 100644
index 0000000000..966341881d
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/9cfded43801645b1bd65f923d5e81523-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c9071829ef214a619e1ffc19fa0e7d5a-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c9071829ef214a619e1ffc19fa0e7d5a-0.parquet
new file mode 100644
index 0000000000..ba3ce633c1
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/c9071829ef214a619e1ffc19fa0e7d5a-0.parquet differ
diff --git a/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/d9539ef60fd940c9b8397f61ad5da898-0.parquet b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/d9539ef60fd940c9b8397f61ad5da898-0.parquet
new file mode 100644
index 0000000000..8fd49fc359
Binary files /dev/null and b/tests/data/parquet/sqPoller/sqvers=3.0/namespace=aos/hostname=net-lab-swi-dist/d9539ef60fd940c9b8397f61ad5da898-0.parquet differ
diff --git a/tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/a5b021cb35704fcdafded48e7e143a23-0.parquet b/tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/a5b021cb35704fcdafded48e7e143a23-0.parquet
new file mode 100644
index 0000000000..af10755b6c
Binary files /dev/null and b/tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-001-1/a5b021cb35704fcdafded48e7e143a23-0.parquet differ
diff --git a/tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/7892cdc3f4914be1811cbedd6528776b-0.parquet b/tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/7892cdc3f4914be1811cbedd6528776b-0.parquet
new file mode 100644
index 0000000000..1da940bbe0
Binary files /dev/null and b/tests/data/parquet/vlan/sqvers=2.0/namespace=aos/hostname=net-lab-swi-dist/7892cdc3f4914be1811cbedd6528776b-0.parquet differ
diff --git a/tests/integration/sqcmds/aos-input/arpnd.output b/tests/integration/sqcmds/aos-input/arpnd.output
new file mode 100644
index 0000000000..557f95a49e
--- /dev/null
+++ b/tests/integration/sqcmds/aos-input/arpnd.output
@@ -0,0 +1,25 @@
+[
+ {
+ "status": 0,
+ "timestamp": 1671742336629,
+ "cmd": "show arp",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/1 vlan2099ip \n\n\n"
+ }
+][
+ {
+ "status": 0,
+ "timestamp": 1671742337064,
+ "cmd": "show arp",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/19 vlan2099 \n\n\n"
+ }
+]
\ No newline at end of file
diff --git a/tests/integration/sqcmds/aos-input/device.output b/tests/integration/sqcmds/aos-input/device.output
new file mode 100644
index 0000000000..1a77330d21
--- /dev/null
+++ b/tests/integration/sqcmds/aos-input/device.output
@@ -0,0 +1,25 @@
+[
+ {
+ "status": 0,
+ "timestamp": 1671742337713,
+ "cmd": "show system",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "System:\n Description: Alcatel-Lucent Enterprise OS6560-P24X4 8.6.289.R01 GA, July 13, 2019.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.14.1.10,\n Up Time: 562 days 6 hours 14 minutes and 22 seconds,\n Contact: Alcatel-Lucent, http://enterprise.alcatel-lucent.com,\n Name: net-lab-swi-001-1,\n Location: Unknown,\n Services: 78,\n Date & Time: MON NOV 18 2030 00:12:18 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 455753728,\n Comments : None\n\n"
+ }
+][
+ {
+ "status": 0,
+ "timestamp": 1671742339335,
+ "cmd": "show system",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "System:\n Description: Alcatel-Lucent Enterprise OS6860E-U28 8.9.73.R01 GA, September 23, 2022.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.11.1.9,\n Up Time: 2 days 10 hours 29 minutes and 2 seconds,\n Contact: Alcatel-Lucent Enterprise, https://www.al-enterprise.com,\n Name: net-lab-swi-dist,\n Location: Unknown,\n Services: 78,\n Date & Time: THU DEC 22 2022 20:52:19 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 1517350912,\n Comments : None\n\n"
+ }
+]
\ No newline at end of file
diff --git a/tests/integration/sqcmds/aos-input/interfaces.output b/tests/integration/sqcmds/aos-input/interfaces.output
new file mode 100644
index 0000000000..1a31046d49
--- /dev/null
+++ b/tests/integration/sqcmds/aos-input/interfaces.output
@@ -0,0 +1,135 @@
+[
+ {
+ "status": 0,
+ "timestamp": 1671742336600,
+ "cmd": "show interfaces status",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": " Chas/ DETECTED-VALUES CONFIGURED-VALUES \n Slot/ Admin Auto Speed Duplex Pause FEC Speed Duplex Pause FEC Link\n Port Status Nego (Mbps) Det (Mbps) Cfg Trap EEE\n--------+------+----+--------+------+-------+----+--------+------+-------+-----+-----+---\n 1/1/1 en en - - - - Auto Auto - AUTO en dis\n 1/1/2 en en - - - - Auto Auto - AUTO en dis\n 1/1/3 en en - - - - Auto Auto - AUTO en dis\n 1/1/4 en en - - - - Auto Auto - AUTO en dis\n 1/1/5 en en - - - - Auto Auto - AUTO en dis\n 1/1/6 en en - - - - Auto Auto - AUTO en dis\n 1/1/7 en en - - - - Auto Auto - AUTO en dis\n 1/1/8 en en - - - - Auto Auto - AUTO en dis\n 1/1/9 en en - - - - Auto Auto - AUTO en dis\n 1/1/10 en en - - - - Auto Auto - AUTO en dis\n 1/1/11 en en - - - - Auto Auto - AUTO en dis\n 1/1/12 en en - - - - Auto Auto - AUTO en dis\n 1/1/13 en en - - - - Auto Auto - AUTO en dis\n 1/1/14 en en - - - - Auto Auto - AUTO en dis\n 1/1/15 en en - - - - Auto Auto - AUTO en dis\n 1/1/16 en en - - - - Auto Auto - AUTO en dis\n 1/1/17 en en - - - - Auto Auto - AUTO en dis\n 1/1/18 en en - - - - Auto Auto - AUTO en dis\n 1/1/19 en en - - - - Auto Auto - AUTO en dis\n 1/1/20 en en - - - - Auto Auto - AUTO en dis\n 1/1/21 en en - - - - Auto Auto - AUTO en dis\n 1/1/22 en en - - - - Auto Auto - AUTO en dis\n 1/1/23 en en - - - - Auto Auto - AUTO en dis\n 1/1/24 en en - - - - Auto Auto - AUTO en dis\n 1/1/25 en en 1000 Full - DIS 1000 Full - AUTO en dis\n 1/1/26 en en - - - - 1000 Full - AUTO en dis\n 1/1/27 en dis - - - - 10000 Full - AUTO en dis\n 1/1/28 en dis - - - - 10000 Full - AUTO en dis\n 1/1/29 en dis - - - - 10000 Full - AUTO en dis\n 1/1/30 en dis - - - - 10000 Full - AUTO en dis\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742337144,
+ "cmd": "show interfaces",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "Chassis/Slot/Port 1/1/1 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:2e,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/2 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:2f,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/3 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:30,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/4 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:31,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/5 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:32,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/6 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:33,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/7 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:34,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/8 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:35,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/9 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:36,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/10 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:37,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/11 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:38,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/12 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:39,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/13 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3a,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/14 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3b,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/15 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3c,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/16 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3d,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/17 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3e,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/18 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:3f,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/19 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:40,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/20 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:41,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/21 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:42,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/22 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:43,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/23 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:44,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/24 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : N/A,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:45,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F 100-F 100-H 10-F 10-H ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/25 :\n Operational Status : up,\n Last Time Link Changed : Fri Nov 15 13:47:12 2030,\n Number of Status Change: 127,\n Type : Ethernet,\n SFP/XFP : Unknown,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:46,\n BandWidth (Megabits) : 1000, \t\tDuplex : Full,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 20438321593, Unicast Frames : 261286,\n Broadcast Frames: 423073, M-cast Frames : 255991957,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 8503836819, Unicast Frames : 110558,\n Broadcast Frames: 279581, M-cast Frames : 81818749,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/26 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:47,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/27 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:48,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/28 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:49,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/29 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:4a,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\nChassis/Slot/Port 1/1/30 :\n Operational Status : down,\n Last Time Link Changed : Fri May 4 17:59:12 2029,\n Number of Status Change: 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:35:6c:4b,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742337594,
+ "cmd": "show vlan members",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/1 default inactive\n 1 1/1/2 default inactive\n 1 1/1/3 default inactive\n 1 1/1/4 default inactive\n 1 1/1/5 default inactive\n 1 1/1/6 default inactive\n 1 1/1/7 default inactive\n 1 1/1/8 default inactive\n 1 1/1/9 default inactive\n 1 1/1/10 default inactive\n 1 1/1/11 default inactive\n 1 1/1/12 default inactive\n 1 1/1/13 default inactive\n 1 1/1/14 default inactive\n 1 1/1/15 default inactive\n 1 1/1/16 default inactive\n 1 1/1/17 default inactive\n 1 1/1/18 default inactive\n 1 1/1/19 default inactive\n 1 1/1/20 default inactive\n 1 1/1/21 default inactive\n 1 1/1/22 default inactive\n 1 1/1/23 default inactive\n 1 1/1/24 default inactive\n 1 1/1/26 default inactive\n 1 1/1/27 default inactive\n 1 1/1/28 default inactive\n 2099 0/1 default forwarding\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742337886,
+ "cmd": "show ip interface",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "Total 2 interfaces\n Flags (D=Directly-bound)\n\n Name IP Address Subnet Mask Status Forward Device Flags\n--------------------------------+---------------+---------------+------+-------+---------+------\nLoopback 127.0.0.1 255.255.255.255 UP NO Loopback \nvlan2099ip 10.20.99.11 255.255.255.0 UP YES vlan 2099 \n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742338126,
+ "cmd": "show linkagg",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "\nNumber Aggregate SNMP Id Size Admin State Oper State Att/Sel Ports\n-------+-------------+---------+----+------------+--------------+-------------\n 1 Dynamic 40000001 4 ENABLED UP 1 1\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742338370,
+ "cmd": "show linkagg port",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "\nChassis/Slot/Port Aggregate SNMP Id Status Agg Oper Link Prim\n-------------------+----------+--------+----------+----+-----+-----+----\n 1/1/25 Dynamic 1025 ATTACHED 1 UP UP YES\n\n"
+ }
+][
+ {
+ "status": 0,
+ "timestamp": 1671742337220,
+ "cmd": "show interfaces status",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": " Chas/ DETECTED-VALUES CONFIGURED-VALUES \n Slot/ Admin Auto Speed Duplex Pause FEC Speed Duplex Pause FEC Link\n Port Status Nego (Mbps) Det (Mbps) Cfg Trap EEE\n--------+------+----+--------+------+-------+----+--------+------+-------+-----+-----+---\n 1/1/1 en en 1000 Full - DIS 1000 Full - AUTO en dis\n 1/1/2 en en - - - - 1000 Full - AUTO en dis\n 1/1/3 en en - - - - 1000 Full - AUTO en dis\n 1/1/4 en en - - - - 1000 Full - AUTO en dis\n 1/1/5 en en - - - - 1000 Full - AUTO en dis\n 1/1/6 en en - - - - 1000 Full - AUTO en dis\n 1/1/7 en en - - - - 1000 Full - AUTO en dis\n 1/1/8 en en - - - - 1000 Full - AUTO en dis\n 1/1/9 en en - - - - 1000 Full - AUTO en dis\n 1/1/10 en en - - - - 1000 Full - AUTO en dis\n 1/1/11 en en - - - - 1000 Full - AUTO en dis\n 1/1/12 en en - - - - 1000 Full - AUTO en dis\n 1/1/13 en en - - - - 1000 Full - AUTO en dis\n 1/1/14 en en - - - - 1000 Full - AUTO en dis\n 1/1/15 en en - - - - 1000 Full - AUTO en dis\n 1/1/16 en en - - - - 1000 Full - AUTO en dis\n 1/1/17 en en - - - - 1000 Full - AUTO en dis\n 1/1/18 en en - - - - 1000 Full - AUTO en dis\n 1/1/19 en en - - - - 1000 Full - AUTO en dis\n 1/1/20 en en - - - - 1000 Full - AUTO en dis\n 1/1/21 en en - - - - 1000 Full - AUTO en dis\n 1/1/22 en en - - - - 1000 Full - AUTO en dis\n 1/1/23 en en - - - - 1000 Full - AUTO en dis\n 1/1/24 en en - - - - 1000 Full - AUTO en dis\n 1/1/25 en en - - - - 1000 Full - AUTO en dis\n 1/1/26 en en - - - - 1000 Full - AUTO en dis\n 1/1/27 en en - - - - 1000 Full - AUTO en dis\n 1/1/28 en en - - - - 1000 Full - AUTO en dis\n 1/1/29 en dis - - - - 10000 Full - AUTO en dis\n 1/1/30 en dis - - - - 10000 Full - AUTO en dis\n 1/1/31 en dis 10000 Full - DIS 10000 Full - AUTO en dis\n 1/1/32 en dis - - - - 10000 Full - AUTO en dis\n 1/1/33 en dis - - - - 21000 Full - AUTO en dis\n 1/1/34 en dis - - - - 21000 Full - AUTO en dis\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742338299,
+ "cmd": "show interfaces",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "Chassis/Slot/Port : 1/1/1 \n Operational Status : up,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:27:13 2022,\n Number of Status Change : 1,\n Type : Ethernet,\n SFP/XFP : Unknown,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:a6,\n BandWidth (Megabits) : 1000, \t\tDuplex : Full,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 47449421, Unicast Frames : 66685,\n Broadcast Frames: 1544, M-cast Frames : 336017,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 94988941, Unicast Frames : 63865,\n Broadcast Frames: 1681, M-cast Frames : 1071794,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/2 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:a7,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/3 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:a8,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/4 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:a9,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/5 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:aa,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/6 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ab,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/7 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ac,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/8 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ad,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/9 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ae,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/10 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:af,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/11 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b0,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/12 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b1,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/13 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b2,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/14 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b3,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/15 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b4,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/16 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b5,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/17 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b6,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/18 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b7,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/19 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b8,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/20 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:b9,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/21 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:ba,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/22 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:bb,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/23 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:bc,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/24 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:bd,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/25 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:be,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/26 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:bf,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/27 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c0,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/28 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c1,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 1 [ 1000-F ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/29 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c2,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/30 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c3,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/31 \n Operational Status : up,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:27:13 2022,\n Number of Status Change : 1,\n Type : Ethernet,\n SFP/XFP : SFP_PLUS_COPPER,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c4,\n BandWidth (Megabits) : 10000, \t\tDuplex : Full,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 111586005, Unicast Frames : 163046,\n Broadcast Frames: 234, M-cast Frames : 230811,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 76520085, Unicast Frames : 162876,\n Broadcast Frames: 3152, M-cast Frames : 441066,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/32 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c5,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/33 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c6,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\nChassis/Slot/Port : 1/1/34 \n Operational Status : down,\n Port-Down/Violation Reason: None,\n Last Time Link Changed : Tue Dec 20 10:26:23 2022,\n Number of Status Change : 0,\n Type : Ethernet,\n SFP/XFP : NotPresent,\n Interface Type : Fiber,\n EPP : Disabled,\n Link-Quality : N/A,\n MAC address : 94:24:e1:37:e6:c7,\n BandWidth (Megabits) : - , \t\tDuplex : -,\n Autonegotiation : 0 [ ],\n Long Frame Size(Bytes) : 9216,\n Inter Frame Gap(Bytes) : 12,\n loopback mode : N/A,\n Rx :\n Bytes Received : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Error Frames : 0,\n CRC Error Frames: 0, Alignments Err : 0,\n Tx :\n Bytes Xmitted : 0, Unicast Frames : 0,\n Broadcast Frames: 0, M-cast Frames : 0,\n UnderSize Frames: 0, OverSize Frames: 0,\n Lost Frames : 0, Collided Frames: 0,\n Error Frames : 0, Collisions : 0,\n Late collisions : 0, Exc-Collisions : 0\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742339237,
+ "cmd": "show vlan members",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/2 untagged inactive\n 1 1/1/3 untagged inactive\n 1 1/1/4 untagged inactive\n 1 1/1/5 untagged inactive\n 1 1/1/6 untagged inactive\n 1 1/1/7 untagged inactive\n 1 1/1/8 untagged inactive\n 1 1/1/9 untagged inactive\n 1 1/1/10 untagged inactive\n 1 1/1/11 untagged inactive\n 1 1/1/12 untagged inactive\n 1 1/1/13 untagged inactive\n 1 1/1/14 untagged inactive\n 1 1/1/15 untagged inactive\n 1 1/1/16 untagged inactive\n 1 1/1/17 untagged inactive\n 1 1/1/18 untagged inactive\n 1 1/1/19 untagged inactive\n 1 1/1/20 untagged inactive\n 1 1/1/21 untagged inactive\n 1 1/1/22 untagged inactive\n 1 1/1/23 untagged inactive\n 1 1/1/24 untagged inactive\n 1 1/1/25 untagged inactive\n 1 1/1/26 untagged inactive\n 1 1/1/27 untagged inactive\n 1 1/1/28 untagged inactive\n 1 1/1/29 untagged inactive\n 1 1/1/30 untagged inactive\n 1 0/19 untagged forwarding\n 2000 0/1 tagged forwarding\n 2001 0/1 tagged forwarding\n 2002 0/1 tagged forwarding\n 2003 0/1 tagged forwarding\n 2004 0/1 tagged forwarding\n 2008 0/1 tagged forwarding\n 2012 0/1 tagged forwarding\n 2016 0/1 tagged forwarding\n 2099 0/1 untagged forwarding\n 2099 0/19 tagged forwarding\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742339899,
+ "cmd": "show ip interface",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "Total 3 interfaces\n Flags (D=Directly-bound)\n\n Name IP Address Subnet Mask Status Forward Device Flags\n--------------------------------+---------------+---------------+------+-------+---------+------\nEMP-CMMA-CHAS1 0.0.0.0 0.0.0.0 DOWN NO EMP \nLoopback 127.0.0.1 255.255.255.255 UP NO Loopback \nvlan2099 10.20.99.10 255.255.255.0 UP YES vlan 2099 \n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742340415,
+ "cmd": "show linkagg",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "\nNumber Aggregate SNMP Id Size Admin State Oper State Att/Sel Ports\n-------+-------------+---------+----+------------+--------------+-------------\n 1 Dynamic 40000001 2 ENABLED UP 1 1\n 19 Dynamic 40000019 4 ENABLED UP 1 1\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742340947,
+ "cmd": "show linkagg port",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "\nChassis/Slot/Port Aggregate SNMP Id Status Agg Oper Link Prim\n-------------------+----------+--------+----------+----+-----+-----+----\n 1/1/1 Dynamic 1001 ATTACHED 1 UP UP YES\n 1/1/31 Dynamic 1031 ATTACHED 19 UP UP YES\n 1/1/32 Dynamic 1032 CONFIGURED NONE DOWN DOWN UNK\n\n"
+ }
+]
\ No newline at end of file
diff --git a/tests/integration/sqcmds/aos-input/inventory.output b/tests/integration/sqcmds/aos-input/inventory.output
new file mode 100644
index 0000000000..fd57d9c3b5
--- /dev/null
+++ b/tests/integration/sqcmds/aos-input/inventory.output
@@ -0,0 +1,47 @@
+[
+ {
+ "status": 0,
+ "timestamp": 1671742337077,
+ "cmd": "show chassis",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "Local Chassis ID 1 (Master)\n Model Name: OS6560-P24X4,\n Module Type: 0x90e220b,\n Description: Chassis,\n Part Number: 904036-90,\n Hardware Revision: 07,\n Serial Number: Y5181962,\n Manufacture Date: Dec 22 2019,\n Admin Status: POWER ON,\n Operational Status: UP,\n Number Of Resets: 1,\n MAC Address: 94:24:e1:35:6c:27\n\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742337510,
+ "cmd": "show system",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "System:\n Description: Alcatel-Lucent Enterprise OS6560-P24X4 8.6.289.R01 GA, July 13, 2019.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.14.1.10,\n Up Time: 562 days 6 hours 14 minutes and 22 seconds,\n Contact: Alcatel-Lucent, http://enterprise.alcatel-lucent.com,\n Name: net-lab-swi-001-1,\n Location: Unknown,\n Services: 78,\n Date & Time: MON NOV 18 2030 00:12:18 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 455753728,\n Comments : None\n\n"
+ }
+][
+ {
+ "status": 0,
+ "timestamp": 1671742337981,
+ "cmd": "show chassis",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "Local Chassis ID 1 (Master)\n Model Name: OS6860E-U28,\n Module Type: 0x6062205,\n Description: Chassis,\n Part Number: 903712-90,\n Hardware Revision: 15,\n Serial Number: DDG200700152,\n Manufacture Date: Feb 22 2020,\n Admin Status: POWER ON,\n Operational Status: UP,\n Number Of Resets: 18,\n MAC Address: 94:24:e1:37:e6:9f\n\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742339014,
+ "cmd": "show system",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "System:\n Description: Alcatel-Lucent Enterprise OS6860E-U28 8.9.73.R01 GA, September 23, 2022.,\n Object ID: 1.3.6.1.4.1.6486.801.1.1.2.1.11.1.9,\n Up Time: 2 days 10 hours 29 minutes and 2 seconds,\n Contact: Alcatel-Lucent Enterprise, https://www.al-enterprise.com,\n Name: net-lab-swi-dist,\n Location: Unknown,\n Services: 78,\n Date & Time: THU DEC 22 2022 20:52:18 (UTC)\nFlash Space:\n Primary CMM:\n Available (bytes): 1517350912,\n Comments : None\n\n"
+ }
+]
\ No newline at end of file
diff --git a/tests/integration/sqcmds/aos-input/macs.output b/tests/integration/sqcmds/aos-input/macs.output
new file mode 100644
index 0000000000..89570be0e4
--- /dev/null
+++ b/tests/integration/sqcmds/aos-input/macs.output
@@ -0,0 +1,25 @@
+[
+ {
+ "status": 0,
+ "timestamp": 1671742337838,
+ "cmd": "show mac-learning",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "Legend: Mac Address: * = address not valid,\n\n Mac Address: & = duplicate static address,\n\n Domain Vlan/SrvcId[ISId/vnId] Mac Address Type Operation Interface\n------------+----------------------+-------------------+------------------+-------------+-------------------------\n VLAN 2099 00:09:0f:09:01:26 dynamic bridging 0/1 \n VLAN 2099 94:24:e1:37:e6:9f dynamic bridging 0/1 \n VLAN 2099 94:24:e1:37:e6:a6 dynamic bridging 0/1 \n\n Total number of Valid MAC addresses above = 3\n\n\n"
+ }
+][
+ {
+ "status": 0,
+ "timestamp": 1671742339738,
+ "cmd": "show mac-learning",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "Legend: Mac Address: * = address not valid,\n\n Mac Address: & = duplicate static address,\n\n Domain Vlan/SrvcId[ISId/vnId] Mac Address Type Operation Interface\n------------+----------------------+-------------------+------------------+-------------+-------------------------\n VLAN 1 94:24:e1:83:4f:6b dynamic bridging 0/19 \n VLAN 2099 94:24:e1:35:6c:27 dynamic bridging 0/1 \n VLAN 2099 94:24:e1:35:6c:46 dynamic bridging 0/1 \n VLAN 2099 00:09:0f:09:01:26 dynamic bridging 0/19 \n\n Total number of Valid MAC addresses above = 4\n\n\n"
+ }
+]
\ No newline at end of file
diff --git a/tests/integration/sqcmds/aos-input/routes.output b/tests/integration/sqcmds/aos-input/routes.output
new file mode 100644
index 0000000000..e486b9302c
--- /dev/null
+++ b/tests/integration/sqcmds/aos-input/routes.output
@@ -0,0 +1,69 @@
+[
+ {
+ "status": 0,
+ "timestamp": 1671742336629,
+ "cmd": "show arp",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/1 vlan2099ip \n\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742337062,
+ "cmd": "show ip interface",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "Total 2 interfaces\n Flags (D=Directly-bound)\n\n Name IP Address Subnet Mask Status Forward Device Flags\n--------------------------------+---------------+---------------+------+-------+---------+------\nLoopback 127.0.0.1 255.255.255.255 UP NO Loopback \nvlan2099ip 10.20.99.11 255.255.255.0 UP YES vlan 2099 \n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742337554,
+ "cmd": "show ip routes",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": "\n + = Equal cost multipath routes\n Total 3 routes\n\n Dest Address Gateway Addr Age Protocol \n------------------+-------------------+----------+-----------\n 0.0.0.0/0 10.20.99.1 2d10h STATIC \n 10.20.99.0/24 10.20.99.11 2d10h LOCAL \n 127.0.0.1/32 127.0.0.1 562d 6h LOCAL \n\n"
+ }
+][
+ {
+ "status": 0,
+ "timestamp": 1671742337119,
+ "cmd": "show arp",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "\nTotal 1 arp entries\n Flags (P=Proxy, A=Authentication, V=VRRP, B=BFD, H=HAVLAN, I=INTF, M=Managed)\n\n IP Addr Hardware Addr Type Flags Port Interface Name\n-----------------+-------------------+----------+-------+-----------------+-----------+---------------------------------\n 10.20.99.1 00:09:0f:09:01:26 DYNAMIC 0/19 vlan2099 \n\n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742338191,
+ "cmd": "show ip interface",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "Total 3 interfaces\n Flags (D=Directly-bound)\n\n Name IP Address Subnet Mask Status Forward Device Flags\n--------------------------------+---------------+---------------+------+-------+---------+------\nEMP-CMMA-CHAS1 0.0.0.0 0.0.0.0 DOWN NO EMP \nLoopback 127.0.0.1 255.255.255.255 UP NO Loopback \nvlan2099 10.20.99.10 255.255.255.0 UP YES vlan 2099 \n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742339180,
+ "cmd": "show ip routes",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": "\n + = Equal cost multipath routes\n Total 3 routes\n\n Dest Address Gateway Addr Age Protocol \n------------------+-------------------+----------+-----------\n 0.0.0.0/0 10.20.99.1 09:58:35 STATIC \n 10.20.99.0/24 10.20.99.10 09:58:35 LOCAL \n 127.0.0.1/32 127.0.0.1 2d10h LOCAL \n\n"
+ }
+]
\ No newline at end of file
diff --git a/tests/integration/sqcmds/aos-input/vlan.output b/tests/integration/sqcmds/aos-input/vlan.output
new file mode 100644
index 0000000000..690f40a306
--- /dev/null
+++ b/tests/integration/sqcmds/aos-input/vlan.output
@@ -0,0 +1,47 @@
+[
+ {
+ "status": 0,
+ "timestamp": 1671742336630,
+ "cmd": "show vlan",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": " vlan type admin oper ip mtu name\n------+-------+-------+------+------+------+------------------\n1 std Ena Dis Dis 1500 VLAN 1 \n2099 std Ena Ena Ena 1500 LAB-zone-mgmt \n4094 vcm Ena Dis Dis 1500 VCM IPC \n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742337249,
+ "cmd": "show vlan members",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-001-1",
+ "address": "10.20.99.11",
+ "version": "8.6.289.R01 GA",
+ "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/1 default inactive\n 1 1/1/2 default inactive\n 1 1/1/3 default inactive\n 1 1/1/4 default inactive\n 1 1/1/5 default inactive\n 1 1/1/6 default inactive\n 1 1/1/7 default inactive\n 1 1/1/8 default inactive\n 1 1/1/9 default inactive\n 1 1/1/10 default inactive\n 1 1/1/11 default inactive\n 1 1/1/12 default inactive\n 1 1/1/13 default inactive\n 1 1/1/14 default inactive\n 1 1/1/15 default inactive\n 1 1/1/16 default inactive\n 1 1/1/17 default inactive\n 1 1/1/18 default inactive\n 1 1/1/19 default inactive\n 1 1/1/20 default inactive\n 1 1/1/21 default inactive\n 1 1/1/22 default inactive\n 1 1/1/23 default inactive\n 1 1/1/24 default inactive\n 1 1/1/26 default inactive\n 1 1/1/27 default inactive\n 1 1/1/28 default inactive\n 2099 0/1 default forwarding\n\n"
+ }
+][
+ {
+ "status": 0,
+ "timestamp": 1671742337226,
+ "cmd": "show vlan",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": " vlan type admin oper ip mtu name\n------+-------+-------+------+------+------+------------------\n1 std Ena Ena Dis 1500 VLAN 1 \n10 std Ena Dis Dis 1500 test \n2000 std Ena Ena Dis 1500 VLAN 2000 \n2001 std Ena Ena Dis 1500 VLAN 2001 \n2002 std Ena Ena Dis 1500 VLAN 2002 \n2003 std Ena Ena Dis 1500 VLAN 2003 \n2004 std Ena Ena Dis 1500 VLAN 2004 \n2008 std Ena Ena Dis 1500 VLAN 2008 \n2012 std Ena Ena Dis 1500 VLAN 2012 \n2016 std Ena Ena Dis 1500 VLAN 2016 \n2099 std Ena Ena Ena 1500 LAB-zone-mgmt \n4094 vcm Ena Dis Dis 1500 VCM IPC \n\n"
+ },
+ {
+ "status": 0,
+ "timestamp": 1671742338421,
+ "cmd": "show vlan members",
+ "devtype": "aos",
+ "namespace": "aos",
+ "hostname": "net-lab-swi-dist",
+ "address": "10.20.99.10",
+ "version": "8.9.73.R01 GA",
+ "data": " vlan port type status\n--------+------------+------------+--------------\n 1 1/1/2 untagged inactive\n 1 1/1/3 untagged inactive\n 1 1/1/4 untagged inactive\n 1 1/1/5 untagged inactive\n 1 1/1/6 untagged inactive\n 1 1/1/7 untagged inactive\n 1 1/1/8 untagged inactive\n 1 1/1/9 untagged inactive\n 1 1/1/10 untagged inactive\n 1 1/1/11 untagged inactive\n 1 1/1/12 untagged inactive\n 1 1/1/13 untagged inactive\n 1 1/1/14 untagged inactive\n 1 1/1/15 untagged inactive\n 1 1/1/16 untagged inactive\n 1 1/1/17 untagged inactive\n 1 1/1/18 untagged inactive\n 1 1/1/19 untagged inactive\n 1 1/1/20 untagged inactive\n 1 1/1/21 untagged inactive\n 1 1/1/22 untagged inactive\n 1 1/1/23 untagged inactive\n 1 1/1/24 untagged inactive\n 1 1/1/25 untagged inactive\n 1 1/1/26 untagged inactive\n 1 1/1/27 untagged inactive\n 1 1/1/28 untagged inactive\n 1 1/1/29 untagged inactive\n 1 1/1/30 untagged inactive\n 1 0/19 untagged forwarding\n 2000 0/1 tagged forwarding\n 2001 0/1 tagged forwarding\n 2002 0/1 tagged forwarding\n 2003 0/1 tagged forwarding\n 2004 0/1 tagged forwarding\n 2008 0/1 tagged forwarding\n 2012 0/1 tagged forwarding\n 2016 0/1 tagged forwarding\n 2099 0/1 untagged forwarding\n 2099 0/19 tagged forwarding\n\n"
+ }
+]
\ No newline at end of file
diff --git a/tests/integration/sqcmds/aos-samples/arpnd.yml b/tests/integration/sqcmds/aos-samples/arpnd.yml
new file mode 100644
index 0000000000..d3485e4796
--- /dev/null
+++ b/tests/integration/sqcmds/aos-samples/arpnd.yml
@@ -0,0 +1,22 @@
+description: 'Testing verbs for arpnd: show summarize unique'
+tests:
+- command: arpnd show --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: arpnd show aos
+ output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "ipAddress": "10.20.99.1",
+ "oif": "0/1", "macaddr": "00:09:0f:09:01:26", "state": "reachable", "remote":
+ false, "timestamp": 1671742892916}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "ipAddress": "10.20.99.1", "oif": "0/19", "macaddr": "00:09:0f:09:01:26", "state":
+ "reachable", "remote": false, "timestamp": 1671742893478}]'
+- command: arpnd summarize --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: arpnd show aos
+ output: '{"aos": {"deviceCnt": 2, "arpNdEntriesCnt": 2, "uniqueArpEntriesCnt": 1,
+ "uniqueOifCnt": 2, "arpEntriesCnt": 2, "v6NDEntriesCnt": 0, "v6NDGlobalEntriesCnt":
+ 0, "v6NDLLAEntriesCnt": 0, "remoteV4EntriesCnt": 0, "staticV4EntriesCnt": 0, "remoteV6EntriesCnt":
+ 0, "staticV6EntriesCnt": 0, "failedEntriesCnt": 0, "failedV4EntriesCnt": 0, "failedV6EntriesCnt":
+ 0}}'
+- command: arpnd unique --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: arpnd show aos
+ output: '[{"hostname": "net-lab-swi-001-1"}, {"hostname": "net-lab-swi-dist"}]'
diff --git a/tests/integration/sqcmds/aos-samples/device.yml b/tests/integration/sqcmds/aos-samples/device.yml
new file mode 100644
index 0000000000..576df9ff4c
--- /dev/null
+++ b/tests/integration/sqcmds/aos-samples/device.yml
@@ -0,0 +1,23 @@
+description: 'Testing verbs for device: show summarize unique'
+tests:
+- command: device show --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: device show aos
+ output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "model": "OS6560-P24X4",
+ "version": "8.6.289.R01 GA", "vendor": "Alcatel-Lucent Enterprise", "architecture":
+ "", "status": "alive", "address": "10.20.99.11", "bootupTimestamp": 1623163075.0,
+ "timestamp": 1671742337713}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "model": "OS6860E-U28", "version": "8.9.73.R01 GA", "vendor": "Alcatel-Lucent
+ Enterprise", "architecture": "", "status": "alive", "address": "10.20.99.10",
+ "bootupTimestamp": 1671531797.0, "timestamp": 1671742339335}]'
+- command: device summarize --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: device show aos
+ output: '{"aos": {"deviceCnt": 2, "downDeviceCnt": 0, "unpolledDeviceCnt": 0, "vendorCnt":
+ {"Alcatel-Lucent Enterprise": 2}, "modelCnt": {"OS6560-P24X4": 1, "OS6860E-U28":
+ 1}, "archCnt": {"": 2}, "versionCnt": {"8.6.289.R01 GA": 1, "8.9.73.R01 GA": 1},
+ "upTimeStat": [210542335, 48579262713, 24394902524]}}'
+- command: device unique --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: device show aos
+ output: '[{"model": "OS6560-P24X4"}, {"model": "OS6860E-U28"}]'
diff --git a/tests/integration/sqcmds/aos-samples/interface.yml b/tests/integration/sqcmds/aos-samples/interface.yml
new file mode 100644
index 0000000000..e2a026d5ef
--- /dev/null
+++ b/tests/integration/sqcmds/aos-samples/interface.yml
@@ -0,0 +1,143 @@
+description: 'Testing verbs for interface: show summarize unique'
+tests:
+- command: interface show --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: interface show aos
+ output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": "0/1",
+ "state": "up", "adminState": "up", "type": "aggregate", "mtu": 0, "vlan": 2099,
+ "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1671742336600},
+ {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": "loopback", "state":
+ "down", "adminState": "up", "type": "loopback", "mtu": 0, "vlan": 0, "master":
+ "", "ipAddressList": ["127.0.0.1"], "ip6AddressList": [], "timestamp": 1671742336600},
+ {"namespace": "aos", "hostname": "net-lab-swi-001-1", "ifname": "vlan2099ip",
+ "state": "up", "adminState": "up", "type": "vlan", "mtu": 0, "vlan": 2099, "master":
+ "", "ipAddressList": ["10.20.99.11"], "ip6AddressList": [], "timestamp": 1671742336600},
+ {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": "1/1/17", "state":
+ "down", "adminState": "up", "type": "ethernet", "mtu": 9216, "vlan": 1, "master":
+ "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1671742337220}, {"namespace":
+ "aos", "hostname": "net-lab-swi-dist", "ifname": "1/1/18", "state": "down", "adminState":
+ "up", "type": "ethernet", "mtu": 9216, "vlan": 1, "master": "", "ipAddressList":
+ [], "ip6AddressList": [], "timestamp": 1671742337220}, {"namespace": "aos", "hostname":
+ "net-lab-swi-dist", "ifname": "1/1/19", "state": "down", "adminState": "up", "type":
+ "ethernet", "mtu": 9216, "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList":
+ [], "timestamp": 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "ifname": "1/1/20", "state": "down", "adminState": "up", "type": "ethernet", "mtu":
+ 9216, "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/21", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/22", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/23", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/24", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/25", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/26", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/27", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/28", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/29", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/30", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/31", "state": "up", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/32", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/16", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/15", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/13", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/33", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "0/1", "state": "up", "adminState": "up", "type": "aggregate", "mtu": 0, "vlan":
+ 2099, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1671742337220},
+ {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname": "0/19", "state":
+ "up", "adminState": "up", "type": "aggregate", "mtu": 0, "vlan": 1, "master":
+ "", "ipAddressList": [], "ip6AddressList": [], "timestamp": 1671742337220}, {"namespace":
+ "aos", "hostname": "net-lab-swi-dist", "ifname": "emp-cmma-chas1", "state": "down",
+ "adminState": "down", "type": "emp", "mtu": 0, "vlan": 0, "master": "", "ipAddressList":
+ ["0.0.0.0"], "ip6AddressList": [], "timestamp": 1671742337220}, {"namespace":
+ "aos", "hostname": "net-lab-swi-dist", "ifname": "loopback", "state": "down",
+ "adminState": "up", "type": "loopback", "mtu": 0, "vlan": 0, "master": "", "ipAddressList":
+ ["127.0.0.1"], "ip6AddressList": [], "timestamp": 1671742337220}, {"namespace":
+ "aos", "hostname": "net-lab-swi-dist", "ifname": "vlan2099", "state": "up", "adminState":
+ "up", "type": "vlan", "mtu": 0, "vlan": 2099, "master": "", "ipAddressList": ["10.20.99.10"],
+ "ip6AddressList": [], "timestamp": 1671742337220}, {"namespace": "aos", "hostname":
+ "net-lab-swi-dist", "ifname": "1/1/1", "state": "up", "adminState": "up", "type":
+ "ethernet", "mtu": 9216, "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList":
+ [], "timestamp": 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "ifname": "1/1/2", "state": "down", "adminState": "up", "type": "ethernet", "mtu":
+ 9216, "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/3", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/4", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/5", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/6", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/7", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/8", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/9", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/10", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/11", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/12", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/14", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 1, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "ifname":
+ "1/1/34", "state": "down", "adminState": "up", "type": "ethernet", "mtu": 9216,
+ "vlan": 0, "master": "", "ipAddressList": [], "ip6AddressList": [], "timestamp":
+ 1671742337220}]'
+- command: interface summarize --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: interface show aos
+ output: '{"aos": {"deviceCnt": 2, "interfaceCnt": 42, "devicesWithL2Cnt": 0, "devicesWithVxlanCnt":
+ 0, "ifDownCnt": 34, "ifAdminDownCnt": 1, "ifWithMultipleIPCnt": 0, "uniqueMTUCnt":
+ {"9216": 34, "0": 8}, "uniqueIfTypesCnt": 5, "speedCnt": {"0": 40, "10000": 1,
+ "1000": 1}, "ifChangesStat": [0, 1, 0.0], "ifPerDeviceStat": [3, 39, 21.0], "uniqueIPv4AddrCnt":
+ 4, "uniqueIPv6AddrCnt": 0}}'
+- command: interface unique --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: interface show aos
+ output: '[{"type": "aggregate"}, {"type": "emp"}, {"type": "ethernet"}, {"type":
+ "loopback"}, {"type": "vlan"}]'
diff --git a/tests/integration/sqcmds/aos-samples/mac.yml b/tests/integration/sqcmds/aos-samples/mac.yml
new file mode 100644
index 0000000000..98332644ca
--- /dev/null
+++ b/tests/integration/sqcmds/aos-samples/mac.yml
@@ -0,0 +1,33 @@
+description: 'Testing verbs for mac: show summarize unique'
+tests:
+- command: mac show --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: mac show aos
+ output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "vlan": 2099, "macaddr":
+ "00:09:0f:09:01:26", "oif": "0/1", "remoteVtepIp": "", "bd": "VLAN", "flags":
+ "bridging", "timestamp": 1671742337838}, {"namespace": "aos", "hostname": "net-lab-swi-001-1",
+ "vlan": 2099, "macaddr": "94:24:e1:37:e6:9f", "oif": "0/1", "remoteVtepIp": "",
+ "bd": "VLAN", "flags": "bridging", "timestamp": 1671742337838}, {"namespace":
+ "aos", "hostname": "net-lab-swi-001-1", "vlan": 2099, "macaddr": "94:24:e1:37:e6:a6",
+ "oif": "0/1", "remoteVtepIp": "", "bd": "VLAN", "flags": "bridging", "timestamp":
+ 1671742337838}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlan": 1,
+ "macaddr": "94:24:e1:83:4f:6b", "oif": "0/19", "remoteVtepIp": "", "bd": "VLAN",
+ "flags": "bridging", "timestamp": 1671742339738}, {"namespace": "aos", "hostname":
+ "net-lab-swi-dist", "vlan": 2099, "macaddr": "94:24:e1:35:6c:27", "oif": "0/1",
+ "remoteVtepIp": "", "bd": "VLAN", "flags": "bridging", "timestamp": 1671742339738},
+ {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlan": 2099, "macaddr":
+ "94:24:e1:35:6c:46", "oif": "0/1", "remoteVtepIp": "", "bd": "VLAN", "flags":
+ "bridging", "timestamp": 1671742339738}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "vlan": 2099, "macaddr": "00:09:0f:09:01:26", "oif": "0/19", "remoteVtepIp": "",
+ "bd": "VLAN", "flags": "bridging", "timestamp": 1671742339738}]'
+- command: mac summarize --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: mac show eos
+ output: '{"aos": {"deviceCnt": 2, "totalMacsinNSCnt": 7, "uniqueMacCnt": 6, "uniqueVlanperHostStat":
+ [1, 2, 1.5]}}'
+- command: mac unique --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: mac show eos
+ output: '[{"macaddr": "00:09:0f:09:01:26"}, {"macaddr": "94:24:e1:35:6c:27"}, {"macaddr":
+ "94:24:e1:35:6c:46"}, {"macaddr": "94:24:e1:37:e6:9f"}, {"macaddr": "94:24:e1:37:e6:a6"},
+ {"macaddr": "94:24:e1:83:4f:6b"}]'
diff --git a/tests/integration/sqcmds/aos-samples/route.yml b/tests/integration/sqcmds/aos-samples/route.yml
new file mode 100644
index 0000000000..2d1f82aadb
--- /dev/null
+++ b/tests/integration/sqcmds/aos-samples/route.yml
@@ -0,0 +1,35 @@
+description: 'Testing verbs for route: show summarize unique'
+tests:
+- command: route show --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: route show aos
+ output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "vrf": "", "prefix":
+ "0.0.0.0/0", "nexthopIps": ["10.20.99.1"], "oifs": ["vlan2099ip"], "protocol":
+ "STATIC", "source": "", "preference": 0, "ipvers": 0, "action": "", "timestamp":
+ 1671742336629}, {"namespace": "aos", "hostname": "net-lab-swi-001-1", "vrf": "",
+ "prefix": "10.20.99.0/24", "nexthopIps": ["10.20.99.11"], "oifs": ["vlan2099ip"],
+ "protocol": "LOCAL", "source": "", "preference": 0, "ipvers": 0, "action": "",
+ "timestamp": 1671742336629}, {"namespace": "aos", "hostname": "net-lab-swi-001-1",
+ "vrf": "", "prefix": "127.0.0.1/32", "nexthopIps": ["127.0.0.1"], "oifs": ["Loopback"],
+ "protocol": "LOCAL", "source": "", "preference": 0, "ipvers": 0, "action": "",
+ "timestamp": 1671742336629}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "vrf": "", "prefix": "0.0.0.0/0", "nexthopIps": ["10.20.99.1"], "oifs": ["vlan2099"],
+ "protocol": "STATIC", "source": "", "preference": 0, "ipvers": 0, "action": "",
+ "timestamp": 1671742337119}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "vrf": "", "prefix": "10.20.99.0/24", "nexthopIps": ["10.20.99.10"], "oifs": ["vlan2099"],
+ "protocol": "LOCAL", "source": "", "preference": 0, "ipvers": 0, "action": "",
+ "timestamp": 1671742337119}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "vrf": "", "prefix": "127.0.0.1/32", "nexthopIps": ["127.0.0.1"], "oifs": ["Loopback"],
+ "protocol": "LOCAL", "source": "", "preference": 0, "ipvers": 0, "action": "",
+ "timestamp": 1671742337119}]'
+- command: route summarize --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: route show aos
+ output: '{"aos": {"deviceCnt": 2, "uniquePrefixCnt": 3, "uniqueVrfsCnt": 1, "ifRoutesCnt":
+ 0, "hostRoutesCnt": 2, "totalV4RoutesinNs": 0, "totalV6RoutesinNs": 0, "routingProtocolCnt":
+ {"LOCAL": 4, "STATIC": 2}, "nexthopCnt": {"1": 6}, "routesPerHostStat": [3, 3,
+ 3.0], "routesperVrfStat": [6, 6, 6.0], "deviceWithNoDefRoute": true}}'
+- command: route unique --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: route show aos
+ output: '[{"prefix": "0.0.0.0/0"}, {"prefix": "10.20.99.0/24"}, {"prefix": "127.0.0.1/32"}]'
diff --git a/tests/integration/sqcmds/aos-samples/vlan.yml b/tests/integration/sqcmds/aos-samples/vlan.yml
new file mode 100644
index 0000000000..0ecdce6f18
--- /dev/null
+++ b/tests/integration/sqcmds/aos-samples/vlan.yml
@@ -0,0 +1,53 @@
+description: 'Testing verbs for vlan: show summarize unique'
+tests:
+- command: vlan show --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: vlan show aos
+ output: '[{"namespace": "aos", "hostname": "net-lab-swi-001-1", "vlanName": "VLAN
+ 1", "state": "suspended", "interfaces": ["1/1/1", "1/1/2", "1/1/3", "1/1/4", "1/1/5",
+ "1/1/6", "1/1/7", "1/1/8", "1/1/9", "1/1/10", "1/1/11", "1/1/12", "1/1/13", "1/1/14",
+ "1/1/15", "1/1/16", "1/1/17", "1/1/18", "1/1/19", "1/1/20", "1/1/21", "1/1/22",
+ "1/1/23", "1/1/24", "1/1/26", "1/1/27", "1/1/28"], "vlan": 1, "timestamp": 1671742336630},
+ {"namespace": "aos", "hostname": "net-lab-swi-001-1", "vlanName": "LAB-zone-mgmt",
+ "state": "active", "interfaces": ["0/1"], "vlan": 2099, "timestamp": 1671742336630},
+ {"namespace": "aos", "hostname": "net-lab-swi-001-1", "vlanName": "VCM IPC", "state":
+ "suspended", "interfaces": [], "vlan": 4094, "timestamp": 1671742336630}, {"namespace":
+ "aos", "hostname": "net-lab-swi-dist", "vlanName": "VLAN 1", "state": "active",
+ "interfaces": ["1/1/2", "1/1/3", "1/1/4", "1/1/5", "1/1/6", "1/1/7", "1/1/8",
+ "1/1/9", "1/1/10", "1/1/11", "1/1/12", "1/1/13", "1/1/14", "1/1/15", "1/1/16",
+ "1/1/17", "1/1/18", "1/1/19", "1/1/20", "1/1/21", "1/1/22", "1/1/23", "1/1/24",
+ "1/1/25", "1/1/26", "1/1/27", "1/1/28", "1/1/29", "1/1/30", "0/19"], "vlan": 1,
+ "timestamp": 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "vlanName": "test", "state": "suspended", "interfaces": [], "vlan": 10, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "VLAN 2000", "state": "active", "interfaces": ["0/1"], "vlan": 2000, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "VLAN 2001", "state": "active", "interfaces": ["0/1"], "vlan": 2001, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "VLAN 2002", "state": "active", "interfaces": ["0/1"], "vlan": 2002, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "VLAN 2003", "state": "active", "interfaces": ["0/1"], "vlan": 2003, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "VLAN 2004", "state": "active", "interfaces": ["0/1"], "vlan": 2004, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "VLAN 2008", "state": "active", "interfaces": ["0/1"], "vlan": 2008, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "VLAN 2012", "state": "active", "interfaces": ["0/1"], "vlan": 2012, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "VLAN 2016", "state": "active", "interfaces": ["0/1"], "vlan": 2016, "timestamp":
+ 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist", "vlanName":
+ "LAB-zone-mgmt", "state": "active", "interfaces": ["0/1", "0/19"], "vlan": 2099,
+ "timestamp": 1671742337226}, {"namespace": "aos", "hostname": "net-lab-swi-dist",
+ "vlanName": "VCM IPC", "state": "suspended", "interfaces": [], "vlan": 4094, "timestamp":
+ 1671742337226}]'
+- command: vlan summarize --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: vlan show aos
+ output: '{"aos": {"deviceCnt": 2, "uniqueVlanCnt": 12, "activeVlanCnt": 10, "suspendedVlanCnt":
+ 0, "vlanPerDeviceStat": [3, 12, 7.5], "ifPerVlanStat": [1, 2, 1.0]}}'
+- command: vlan unique --format=json --namespace=aos
+ data-directory: tests/data/parquet/
+ marks: vlan show aos
+ output: '[{"vlan": 1}, {"vlan": 10}, {"vlan": 2000}, {"vlan": 2001}, {"vlan": 2002},
+ {"vlan": 2003}, {"vlan": 2004}, {"vlan": 2008}, {"vlan": 2012}, {"vlan": 2016},
+ {"vlan": 2099}, {"vlan": 4094}]'
diff --git a/tests/integration/test_sqcmds.py b/tests/integration/test_sqcmds.py
index 569efa69ac..aa981f3e93 100644
--- a/tests/integration/test_sqcmds.py
+++ b/tests/integration/test_sqcmds.py
@@ -440,6 +440,15 @@ def _test_sqcmds(testvar, context_config):
raise Exception(f"either xfail or output requried {error}")
+@ pytest.mark.smoke
+@ pytest.mark.sqcmds
+@ pytest.mark.parametrize(
+ "testvar",
+ load_up_the_tests(os.scandir(os.path.abspath(os.curdir) +
+ '/tests/integration/sqcmds/aos-samples')))
+def test_aos_sqcmds(testvar, create_context_config):
+ _test_sqcmds(testvar, create_context_config)
+
@ pytest.mark.smoke
@ pytest.mark.sqcmds
@ pytest.mark.parametrize(
diff --git a/tests/integration/test_update_data.py b/tests/integration/test_update_data.py
index 4c60ece59e..2bf3ab2fbe 100644
--- a/tests/integration/test_update_data.py
+++ b/tests/integration/test_update_data.py
@@ -321,6 +321,15 @@ def _update_test_data_common_fn(self, nos, tmp_path, device_cnt):
if os.environ.get('SUZIEQ_POLLER', None) != 'data':
update_sqcmds(glob.glob(f'{sqcmds_dir}/{nos}-samples/*.yml'))
+ @pytest.mark.test_update
+ @pytest.mark.update_data
+ @pytest.mark.aos
+ @pytest.mark.skipif(not os.environ.get('SUZIEQ_POLLER', None),
+ reason='Not updating data')
+ def test_update_aos_data(self, tmp_path):
+ '''Update AOS test data'''
+ self._update_test_data_common_fn('aos', tmp_path, '2')
+
@pytest.mark.test_update
@pytest.mark.update_data
@pytest.mark.eos