# frozen_string_literal: true module Hotwired class Model def self.map(sysDescr, sysObjectID) case sysDescr when /Cisco Catalyst Operating System/i "catos" when /Cisco Controller/ "aireos" when /IOS XR/ "iosxr" when /NX-OS/ "nxos" when /JUNOS/ "junos" when /Arista Networks EOS/ "eos" when /IronWare/ "ironware" when /TiMOS/ "timos" when /ExtremeXOS/ "xos" when /Cisco Adaptive Security Appliance/ "asa" when /Brocade Fibre Channel Switch/ "fabricos" when /Brocade VDX/ "nos" when /cisco/i, /Application Control Engine/i "ios" when /Force10 OS/ "ftos" when /Versatile Routing Platform/ "vrp" when /^NetScreen/, /^SSG-\d+/ "screenos" when /^Summit/ "xos" when /^Alcatel-Lucent \S+ [789]\./ # aos <7 is vxworks, >=7 is linux "aos7" when /^AOS-W/ "aosw" when /^Alcatel-Lucent/ "aos" when /\s+ACOS\s+/ "acos" when /ProCurve/ # ProCurve OS does not seem to have name? "procurve" when /ASAM/ "isam" when /^\d+[A-Z]\sEthernet Switch$/ "powerconnect" when /Ericsson IPOS/ "ssr" when /Huawei Integrated Access Software/ "hias" else case sysObjectID when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.12356.")) "fortios" # 1.3.6.1.4.1.12356.101.1.10004 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.6486.")) "aos" # 1.3.6.1.4.1.6486.800.1.1.2.1.11.2.2 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.6027.")) "ftos" # 1.3.6.1.4.1.6027.1.3.4 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.1588.")) "fabricos " # 1.3.6.1.4.1.1588.2.1.1.1 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.3224.")) "screenos" # 1.3.6.1.4.1.3224.1.51 (SSG) 1.16 (Netscreen 2k) when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.674.")) "powerconnect" # 1.3.6.1.4.1.674.10895.3031 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.22610.")) "acos" # 1.3.6.1.4.1.22610.1.3.14 when Regexp.new("^" + Regexp.quote(".1.3.6.1.4.1.637.")) "isam" # 1.3.6.1.4.1.637.61.1 when Regexp.new("^" + Regexp.quote(".1.3.6.1.4.1.2011.")) "vrp" # 1.3.6.1.4.1.2011.2.224.67 (AR1220F) when Regexp.new("^" + Regexp.quote(".1.3.6.1.4.1.1588.")) "nos" # 1.3.6.1.4.1.1588.2.2.1.1.1.5 (VDX) when Regexp.new("^" + Regexp.quote(".1.3.6.1.4.1.1916.")) "xos" # 1.3.6.1.4.1.1916.2.76 (X450a-48t) when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.9.1.745")) "asa" # 1.3.6.1.4.1.9.1.745 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.20858.2.600")) "casa" # 1.3.6.1.4.1.20858.2.600 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.2011.2.169")) "hias" # 1.3.6.1.4.1.2011.2.169 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.2011.2.300")) "hias" # 1.3.6.1.4.1.2011.2.300 (MA5800 OLT) when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.2352.1")) "ssr" # 1.3.6.1.4.1.2352.1.17 and .18 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.193.218.1")) "ssr" # 1.3.6.1.4.1.193.218.1.17 and .18 when Regexp.new("^" + Regexp.quote("1.3.6.1.4.1.11.2.3.7.11")) "procurve" # Aruba switches are really HP Procurve else "unsupported" end end end end end