more tests

This commit is contained in:
Graham McIntire 2026-01-22 11:51:35 -06:00
parent 155b38ab94
commit 218b99972e
No known key found for this signature in database
290 changed files with 23528 additions and 249 deletions

View file

@ -0,0 +1,374 @@
defmodule Mix.Tasks.GenVendorModules do
@shortdoc "Generate vendor module skeletons from YAML profiles"
@moduledoc """
Generates vendor module skeletons from YAML profiles.
## Usage
mix gen_vendor_modules [--dry-run] [--group GROUP]
## Options
* `--dry-run` - Show what would be generated without creating files
* `--group GROUP` - Only generate for a specific group/vendor
## Examples
# Generate all missing vendor modules
mix gen_vendor_modules
# Preview what would be generated
mix gen_vendor_modules --dry-run
# Generate only for a specific vendor
mix gen_vendor_modules --group cisco
"""
use Mix.Task
@profiles_dir "priv/profiles/os_detection"
@vendors_dir "lib/towerops/snmp/profiles/vendors"
# Filename prefix to vendor mapping for profiles without group field
@filename_vendor_map %{
"cisco" => "cisco",
"juniper" => "juniper",
"junos" => "juniper",
"hp" => "hp",
"dell" => "dell",
"ibm" => "ibm",
"netgear" => "netgear",
"dlink" => "dlink",
"d-link" => "dlink",
"tp-link" => "tplink",
"tplink" => "tplink",
"netapp" => "netapp",
"synology" => "synology",
"qnap" => "qnap",
"vmware" => "vmware",
"palo" => "paloalto",
"panos" => "paloalto",
"fortinet" => "fortinet",
"forti" => "fortinet",
"checkpoint" => "checkpoint",
"sonic" => "sonicwall",
"sonicwall" => "sonicwall",
"opengear" => "opengear",
"raritan" => "raritan",
"eaton" => "eaton",
"liebert" => "liebert",
"cyberpower" => "cyberpower",
"tripp" => "tripplite",
"axis" => "axis",
"hikvision" => "hikvision",
"avaya" => "avaya",
"polycom" => "polycom",
"yealink" => "yealink",
"mitel" => "mitel",
"riverbed" => "riverbed",
"citrix" => "citrix",
"f5" => "f5",
"a10" => "a10",
"infoblox" => "infoblox",
"bluecoat" => "bluecoat",
"barracuda" => "barracuda",
"aruba" => "aruba",
"ruckus" => "ruckus"
}
@impl Mix.Task
def run(args) do
{opts, _, _} = OptionParser.parse(args, switches: [dry_run: :boolean, group: :string])
dry_run = Keyword.get(opts, :dry_run, false)
filter_group = Keyword.get(opts, :group)
# Get existing vendors and covered profiles
existing_vendors = get_existing_vendors()
covered_profiles = get_covered_profiles()
IO.puts("Found #{length(existing_vendors)} existing vendor modules")
IO.puts("Found #{length(covered_profiles)} profiles already covered")
# Parse all YAML profiles
profiles = parse_yaml_profiles()
IO.puts("Found #{length(profiles)} YAML profiles")
# Group profiles by vendor
grouped = group_profiles(profiles)
IO.puts("Grouped into #{map_size(grouped)} vendors")
# Filter if requested
grouped =
if filter_group do
Map.take(grouped, [filter_group])
else
grouped
end
# Filter out existing vendors and groups where all profiles are already covered
new_vendors =
grouped
|> Enum.reject(fn {vendor, vendor_profiles} ->
module_name = vendor_to_module_name(vendor)
module_exists = module_name in existing_vendors
# Check if all profiles in this group are already covered
profile_names = Enum.map(vendor_profiles, & &1.os)
all_covered = Enum.all?(profile_names, &(&1 in covered_profiles))
module_exists or all_covered
end)
|> Enum.map(fn {vendor, vendor_profiles} ->
# Filter out profiles that are already covered
uncovered = Enum.reject(vendor_profiles, &(&1.os in covered_profiles))
{vendor, uncovered}
end)
|> Enum.reject(fn {_vendor, profiles} -> Enum.empty?(profiles) end)
|> Map.new()
IO.puts("#{map_size(new_vendors)} new vendors to generate")
if map_size(new_vendors) == 0 do
IO.puts("\nNo new vendors to generate!")
:ok
else
Enum.each(new_vendors, fn {vendor, vendor_profiles} ->
generate_vendor_module(vendor, vendor_profiles, dry_run)
end)
print_instructions(new_vendors, dry_run)
end
end
defp print_instructions(new_vendors, dry_run) do
if !dry_run do
IO.puts("\n\nGenerated #{map_size(new_vendors)} vendor modules.")
IO.puts("Run `mix compile` to check for errors.")
IO.puts("Run `mix test` to verify.")
IO.puts("\nDon't forget to:")
IO.puts(" 1. Add aliases to registry.ex")
IO.puts(" 2. Add vendors to @vendors list in registry.ex")
IO.puts(" 3. Write tests for each vendor")
IO.puts(" 4. Add vendor-specific OIDs if available")
end
end
defp get_existing_vendors do
"#{@vendors_dir}/*.ex"
|> Path.wildcard()
|> Enum.map(&Path.basename(&1, ".ex"))
|> Enum.reject(&(&1 in ["registry", "vendor"]))
|> Enum.map(&Macro.camelize/1)
end
defp get_covered_profiles do
# Get all profile names already handled by existing vendor modules
# This requires the application to be started
_ = Application.ensure_all_started(:towerops)
Towerops.Snmp.Profiles.Vendors.Registry.list_profile_names()
rescue
_ -> []
end
defp parse_yaml_profiles do
"#{@profiles_dir}/*.yaml"
|> Path.wildcard()
|> Enum.map(&parse_yaml_file/1)
|> Enum.reject(&is_nil/1)
end
defp parse_yaml_file(path) do
case YamlElixir.read_from_file(path) do
{:ok, data} when is_map(data) ->
build_profile_map(data, path)
_ ->
nil
end
end
defp build_profile_map(data, path) do
os = Map.get(data, "os")
if os do
%{
os: os,
group: Map.get(data, "group"),
text: Map.get(data, "text"),
sys_object_ids: extract_sys_object_ids(data),
filename: Path.basename(path, ".yaml")
}
end
end
defp extract_sys_object_ids(data) do
data
|> Map.get("discovery", [])
|> List.wrap()
|> Enum.flat_map(&get_sys_object_id_list/1)
end
defp get_sys_object_id_list(%{"sysObjectID" => oids}) when is_list(oids), do: oids
defp get_sys_object_id_list(_), do: []
defp group_profiles(profiles) do
profiles
|> Enum.group_by(&determine_vendor/1)
|> Enum.reject(fn {vendor, _} -> vendor == nil end)
|> Map.new()
end
defp determine_vendor(%{group: group}) when is_binary(group) and group != "" do
String.downcase(group)
end
defp determine_vendor(%{filename: filename}) do
infer_vendor_from_filename(filename)
end
defp infer_vendor_from_filename(filename) do
Enum.find_value(@filename_vendor_map, fn {prefix, vendor} ->
if String.starts_with?(filename, prefix) or String.contains?(filename, prefix) do
vendor
end
end)
end
defp vendor_to_module_name(vendor) do
name =
vendor
|> String.replace(~r/[^a-z0-9]+/i, "_")
|> String.trim("_")
|> Macro.camelize()
# Prefix with "N" if starts with a number (e.g., "4rf" -> "N4rf")
if String.match?(name, ~r/^[0-9]/) do
"N#{name}"
else
name
end
end
defp vendor_to_filename(vendor) do
name =
vendor
|> String.replace(~r/[^a-z0-9]+/i, "_")
|> String.downcase()
|> String.trim("_")
# Prefix with "n" if starts with a number
if String.match?(name, ~r/^[0-9]/) do
"n#{name}"
else
name
end
end
defp generate_vendor_module(vendor, profiles, dry_run) do
module_name = vendor_to_module_name(vendor)
filename = vendor_to_filename(vendor)
profile_names = profiles |> Enum.map(& &1.os) |> Enum.sort() |> Enum.uniq()
# Get enterprise OID from first sysObjectID if available
enterprise_oid = extract_enterprise_oid(profiles)
content = generate_module_content(module_name, profile_names, enterprise_oid, vendor)
if dry_run do
IO.puts("\n--- #{filename}.ex (#{module_name}) ---")
IO.puts(" Profiles: #{Enum.join(profile_names, ", ")}")
IO.puts(" Enterprise OID: #{enterprise_oid || "none"}")
else
path = "#{@vendors_dir}/#{filename}.ex"
File.write!(path, content)
IO.puts("Generated: #{path}")
end
end
defp extract_enterprise_oid(profiles) do
profiles
|> Enum.flat_map(& &1.sys_object_ids)
|> Enum.find_value(fn oid ->
# Parse enterprise OID from sysObjectID pattern like ".1.3.6.1.4.1.9."
case Regex.run(~r/\.?1\.3\.6\.1\.4\.1\.(\d+)/, oid) do
[_, enterprise] -> "1.3.6.1.4.1.#{enterprise}"
_ -> nil
end
end)
end
defp generate_module_content(module_name, profile_names, enterprise_oid, vendor) do
profiles_list = inspect(profile_names, pretty: true, limit: :infinity)
enterprise_comment =
if enterprise_oid do
" # Enterprise OID: #{enterprise_oid}"
else
" # Enterprise OID: unknown - uses standard MIB OIDs"
end
"""
defmodule Towerops.Snmp.Profiles.Vendors.#{module_name} do
@moduledoc \"\"\"
SNMP profile for #{String.capitalize(vendor)} devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
\"\"\"
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
#{enterprise_comment}
@impl true
def profile_names, do: #{profiles_list}
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# TODO: Add vendor-specific hardware detection
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\\r\\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
# TODO: Add vendor-specific OIDs
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end
"""
end
end

View file

@ -0,0 +1,209 @@
defmodule Mix.Tasks.GenVendorTests do
@shortdoc "Generate test files for vendor modules"
@moduledoc """
Generates test files for vendor modules that don't have tests.
## Usage
mix gen_vendor_tests [--dry-run]
## Options
* `--dry-run` - Show what would be generated without creating files
"""
use Mix.Task
@vendors_dir "lib/towerops/snmp/profiles/vendors"
@tests_dir "test/towerops/snmp/profiles/vendors"
@impl Mix.Task
def run(args) do
{opts, _, _} = OptionParser.parse(args, switches: [dry_run: :boolean])
dry_run = Keyword.get(opts, :dry_run, false)
# Get all vendor modules (excluding registry and vendor behaviour)
vendor_files =
"#{@vendors_dir}/*.ex"
|> Path.wildcard()
|> Enum.map(&Path.basename(&1, ".ex"))
|> Enum.reject(&(&1 in ["registry", "vendor"]))
# Get existing tests
existing_tests =
"#{@tests_dir}/*_test.exs"
|> Path.wildcard()
|> Enum.map(&Path.basename(&1, "_test.exs"))
# Find vendors without tests
vendors_without_tests =
vendor_files
|> Enum.reject(&(&1 in existing_tests))
|> Enum.sort()
IO.puts("Found #{length(vendor_files)} vendor modules")
IO.puts("Found #{length(existing_tests)} existing tests")
IO.puts("#{length(vendors_without_tests)} vendors need tests")
if vendors_without_tests == [] do
IO.puts("\nAll vendor modules have tests!")
:ok
else
Enum.each(vendors_without_tests, fn vendor_file ->
generate_vendor_test(vendor_file, dry_run)
end)
if !dry_run do
IO.puts("\n\nGenerated #{length(vendors_without_tests)} test files.")
IO.puts("Run `mix test test/towerops/snmp/profiles/vendors/` to verify.")
end
end
end
defp generate_vendor_test(vendor_file, dry_run) do
module_name = Macro.camelize(vendor_file)
# Read the vendor module to get profile names
vendor_path = "#{@vendors_dir}/#{vendor_file}.ex"
profile_names = extract_profile_names(vendor_path)
content = generate_test_content(module_name, profile_names)
if dry_run do
IO.puts("Would generate: #{@tests_dir}/#{vendor_file}_test.exs")
else
path = "#{@tests_dir}/#{vendor_file}_test.exs"
File.write!(path, content)
IO.puts("Generated: #{path}")
end
end
defp extract_profile_names(path) do
case File.read(path) do
{:ok, content} ->
case Regex.run(~r/def profile_names.*?do:?\s*(\[.*?\])/s, content) do
[_, list_str] ->
# Parse the list from the string
{result, _} = Code.eval_string(list_str)
result
_ ->
[]
end
_ ->
[]
end
end
defp generate_test_content(module_name, profile_names) do
profiles_inspect = inspect(profile_names)
"""
defmodule Towerops.Snmp.Profiles.Vendors.#{module_name}Test do
use Towerops.DataCase, async: true
import Mox
alias Towerops.Snmp.Profiles.Vendors.#{module_name}
alias Towerops.Snmp.SnmpMock
setup :verify_on_exit!
@client_opts [
ip: "192.168.1.1",
community: "public",
version: "2c",
port: 161,
timeout: 5000
]
describe "profile_names/0" do
test "returns expected profile names" do
assert #{module_name}.profile_names() == #{profiles_inspect}
end
end
describe "detect_hardware/1" do
test "returns hardware description when SNMP responds" do
expect(SnmpMock, :get, fn _, "1.3.6.1.2.1.1.1.0", _ ->
{:ok, "Test Device Model XYZ"}
end)
assert #{module_name}.detect_hardware(@client_opts) == "Test Device Model XYZ"
end
test "returns nil when SNMP fails" do
expect(SnmpMock, :get, fn _, _, _ ->
{:error, :timeout}
end)
assert #{module_name}.detect_hardware(@client_opts) == nil
end
test "truncates long descriptions to 64 characters" do
long_descr = String.duplicate("A", 100)
expect(SnmpMock, :get, fn _, "1.3.6.1.2.1.1.1.0", _ ->
{:ok, long_descr}
end)
result = #{module_name}.detect_hardware(@client_opts)
assert String.length(result) == 64
end
end
describe "wireless_oid_defs/0" do
test "returns list of sensor definitions" do
defs = #{module_name}.wireless_oid_defs()
assert is_list(defs)
assert length(defs) >= 1
end
test "each definition has required fields" do
defs = #{module_name}.wireless_oid_defs()
Enum.each(defs, fn def ->
assert Map.has_key?(def, :oid)
assert Map.has_key?(def, :sensor_descr)
assert Map.has_key?(def, :sensor_type)
assert Map.has_key?(def, :sensor_unit)
assert Map.has_key?(def, :sensor_divisor)
end)
end
end
describe "discover_wireless_sensors/1" do
test "discovers sensors when SNMP responds" do
defs = #{module_name}.wireless_oid_defs()
num_defs = length(defs)
expect(SnmpMock, :get, num_defs, fn _, _oid, _ ->
{:ok, 42}
end)
sensors = #{module_name}.discover_wireless_sensors(@client_opts)
assert is_list(sensors)
assert length(sensors) == num_defs
end
test "returns empty list when no sensors respond" do
defs = #{module_name}.wireless_oid_defs()
num_defs = length(defs)
expect(SnmpMock, :get, num_defs, fn _, _, _ ->
{:error, :no_such_object}
end)
sensors = #{module_name}.discover_wireless_sensors(@client_opts)
assert sensors == []
end
end
end
"""
end
end

View file

@ -157,20 +157,21 @@ defmodule Towerops.Snmp.DeferredDiscovery do
@doc """
Categorizes a device as fast or slow based on initial response time.
Returns :fast, :slow, or :unresponsive.
Options:
* `:fast_threshold` - milliseconds below which device is considered fast (default: 1000)
"""
@spec categorize_device_speed(Client.connection_opts()) :: :fast | :slow | :unresponsive
def categorize_device_speed(client_opts) do
@spec categorize_device_speed(Client.connection_opts(), keyword()) ::
:fast | :slow | :unresponsive
def categorize_device_speed(client_opts, opts \\ []) do
fast_threshold = Keyword.get(opts, :fast_threshold, 1_000)
start_time = System.monotonic_time(:millisecond)
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, _} ->
elapsed = System.monotonic_time(:millisecond) - start_time
cond do
elapsed < 1_000 -> :fast
elapsed < 5_000 -> :slow
true -> :slow
end
if elapsed < fast_threshold, do: :fast, else: :slow
{:error, _} ->
:unresponsive

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.A10 do
@moduledoc """
SNMP profile for A10 devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.22610
@impl true
def profile_names, do: ["acos", "zxa10"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Adva do
@moduledoc """
SNMP profile for Adva devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.2544
@impl true
def profile_names, do: ["adva-aos", "adva-fsp150cp", "adva-osa", "adva_fsp150", "adva_fsp3kr7", "adva_xg300"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Advantech do
@moduledoc """
SNMP profile for Advantech devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.10297
@impl true
def profile_names, do: ["advantech", "icr-os"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Airconsole do
@moduledoc """
SNMP profile for Airconsole devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.14358
@impl true
def profile_names, do: ["airconsole"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Alcatel do
@moduledoc """
SNMP profile for Alcatel devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["omnipcx"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Allied do
@moduledoc """
SNMP profile for Allied devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["allied", "allied-tq"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -21,7 +21,7 @@ defmodule Towerops.Snmp.Profiles.Vendors.AlliedTelesis do
@sysdescr_oid "1.3.6.1.2.1.1.1.0"
@impl true
def profile_names, do: ["allied", "awplus", "allied-tq"]
def profile_names, do: ["allied", "awplus", "allied-tq", "radlan"]
@impl true
def detect_hardware(client_opts) do

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Alpha do
@moduledoc """
SNMP profile for Alpha devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.26854
@impl true
def profile_names, do: ["compas", "fxm"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Arbor do
@moduledoc """
SNMP profile for Arbor devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.9694
@impl true
def profile_names, do: ["arbos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Arris do
@moduledoc """
SNMP profile for Arris devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.4115
@impl true
def profile_names, do: ["arris-d5"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Asentria do
@moduledoc """
SNMP profile for Asentria devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.3052
@impl true
def profile_names, do: ["siteboss", "siteboss360", "siteboss550", "siteboss571", "siteboss572"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Audiocodes do
@moduledoc """
SNMP profile for Audiocodes devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.5003
@impl true
def profile_names, do: ["audiocodes"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Avaya do
@moduledoc """
SNMP profile for Avaya devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.6889
@impl true
def profile_names, do: ["avaya-ipo"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Axis do
@moduledoc """
SNMP profile for Axis devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["axisaudio", "axiscam", "axisdocserver"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Barco do
@moduledoc """
SNMP profile for Barco devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.7312
@impl true
def profile_names, do: ["clickshare"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Barracuda do
@moduledoc """
SNMP profile for Barracuda devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.10704
@impl true
def profile_names, do: ["barracudaloadbalancer", "barracudangfirewall", "barracudaspamfirewall", "barracudawafirewall"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Bistream do
@moduledoc """
SNMP profile for Bistream devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.6603
@impl true
def profile_names, do: ["hyperion"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Bke do
@moduledoc """
SNMP profile for Bke devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.27533
@impl true
def profile_names, do: ["bke"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Brocade do
@moduledoc """
SNMP profile for Brocade devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.1588
@impl true
def profile_names, do: ["fabos", "ironware", "nos", "serveriron"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Bti do
@moduledoc """
SNMP profile for Bti devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.30005
@impl true
def profile_names, do: ["bti800"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,59 @@
defmodule Towerops.Snmp.Profiles.Vendors.Cambium do
@moduledoc """
SNMP profile for Cambium devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.161
@impl true
def profile_names,
do: ["cmm", "cmm4", "cnpilote", "cnpilotr", "epmp", "pmp", "ptp250", "ptp500", "ptp600", "ptp650", "ptp670", "ptp800"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Cdata do
@moduledoc """
SNMP profile for Cdata devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.17409
@impl true
def profile_names, do: ["cdata"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Christie do
@moduledoc """
SNMP profile for Christie devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.25766
@impl true
def profile_names, do: ["christie-projector"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Ciena do
@moduledoc """
SNMP profile for Ciena devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.562
@impl true
def profile_names, do: ["ciena-saos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Cirpack do
@moduledoc """
SNMP profile for Cirpack devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["cirpack"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,87 @@
defmodule Towerops.Snmp.Profiles.Vendors.Cisco do
@moduledoc """
SNMP profile for Cisco devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.9
@impl true
def profile_names,
do: [
"acano",
"acs",
"acsw",
"apic",
"asa",
"cat1900",
"catos",
"cimc",
"ciscoepc",
"ciscome1200",
"ciscosat",
"ciscosb",
"ciscosce",
"ciscospa",
"ciscosrp",
"ciscowlc",
"ftd",
"fxos",
"ios",
"iosxe",
"iosxr",
"nxos",
"ons",
"pixos",
"sanos",
"viptela",
"waas"
]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Citrix do
@moduledoc """
SNMP profile for Citrix devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.3845
@impl true
def profile_names, do: ["netscaler-sdwan"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Corero do
@moduledoc """
SNMP profile for Corero devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.41036
@impl true
def profile_names, do: ["cms"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Cts do
@moduledoc """
SNMP profile for Cts devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.9304
@impl true
def profile_names, do: ["cts"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Cyberpower do
@moduledoc """
SNMP profile for Cyberpower devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.3808
@impl true
def profile_names, do: ["cyberpower"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Dahua do
@moduledoc """
SNMP profile for Dahua devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.1004849
@impl true
def profile_names, do: ["dahua-nvr"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Dantherm do
@moduledoc """
SNMP profile for Dantherm devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["dantherm-os"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Dell do
@moduledoc """
SNMP profile for Dell devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.674
@impl true
def profile_names, do: ["dell-ome-m", "dell-os10", "dell-powervault", "dell-rcs", "dell-rpdu", "dell-sonic", "dell-ups"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Delta do
@moduledoc """
SNMP profile for Delta devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.20246
@impl true
def profile_names, do: ["deltaorion"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Deltanet do
@moduledoc """
SNMP profile for Deltanet devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.35616
@impl true
def profile_names, do: ["lambdatrail"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Deva do
@moduledoc """
SNMP profile for Deva devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["deva-db7001"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Dkt do
@moduledoc """
SNMP profile for Dkt devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["dkt"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,59 @@
defmodule Towerops.Snmp.Profiles.Vendors.Dlink do
@moduledoc """
SNMP profile for Dlink devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.171
@impl true
# Note: "dlinkap" is handled by the Dlinkap module
def profile_names, do: ["dlink", "dlink-dgs1250"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Dpstelecom do
@moduledoc """
SNMP profile for Dpstelecom devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.2682
@impl true
def profile_names, do: ["netguardian"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Eaton do
@moduledoc """
SNMP profile for Eaton devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.935
@impl true
def profile_names, do: ["eaton-ats", "eaton-matrix", "eaton-sc200", "eaton-sc300", "eatonpdu"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Edfa do
@moduledoc """
SNMP profile for Edfa devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.17409
@impl true
def profile_names, do: ["edfa"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Eds do
@moduledoc """
SNMP profile for Eds devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.31440
@impl true
def profile_names, do: ["eds"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Ekinops do
@moduledoc """
SNMP profile for Ekinops devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.20044
@impl true
def profile_names, do: ["ekinops"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Epson do
@moduledoc """
SNMP profile for Epson devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.1248
@impl true
def profile_names, do: ["epson-projector", "epson-scanner"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Ericsson do
@moduledoc """
SNMP profile for Ericsson devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.572
@impl true
def profile_names, do: ["elg-ipecs-es", "ericsson-ipos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Extreme do
@moduledoc """
SNMP profile for Extreme devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.1588
@impl true
def profile_names, do: ["slxos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.F5 do
@moduledoc """
SNMP profile for F5 devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.3375
@impl true
def profile_names, do: ["f5", "f5os"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Fibrolan do
@moduledoc """
SNMP profile for Fibrolan devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.4467
@impl true
def profile_names, do: ["fibrolan-falcon", "fibrolan-metrostar"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Firebrick do
@moduledoc """
SNMP profile for Firebrick devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["firebrick"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,71 @@
defmodule Towerops.Snmp.Profiles.Vendors.Fortinet do
@moduledoc """
SNMP profile for Fortinet devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.12356
@impl true
# Note: "fortiap" and "fortiwlc" are handled by Fortiap and Fortiwlc modules
def profile_names,
do: [
"fortiadc",
"fortiauthenticator",
"fortiextender",
"fortigate",
"fortimail",
"fortios",
"fortisandbox",
"fortiswitch",
"fortivoice",
"fortiweb"
]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Fs do
@moduledoc """
SNMP profile for Fs devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.52642
@impl true
def profile_names, do: ["fs-bdcom", "fs-centec", "fs-gbn", "fs-net-pdu", "fs-nmu", "fs-switch", "fs-switch-dc"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Geist do
@moduledoc """
SNMP profile for Geist devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.21239
@impl true
def profile_names, do: ["geist-pdu", "geist-watchdog"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Gigamon do
@moduledoc """
SNMP profile for Gigamon devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.26866
@impl true
def profile_names, do: ["gigavue"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Greenbone do
@moduledoc """
SNMP profile for Greenbone devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["gos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Gude do
@moduledoc """
SNMP profile for Gude devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.28507
@impl true
def profile_names, do: ["ets", "gude-esb"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Gwd do
@moduledoc """
SNMP profile for Gwd devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.10072
@impl true
def profile_names, do: ["gwd"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Hikvision do
@moduledoc """
SNMP profile for Hikvision devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.50001
@impl true
def profile_names, do: ["hikvision-cam", "hikvision-nvr"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Hillstone do
@moduledoc """
SNMP profile for Hillstone devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["stoneos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Himoinsa do
@moduledoc """
SNMP profile for Himoinsa devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["himoinsa-gensets"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Hp do
@moduledoc """
SNMP profile for Hp devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.11
@impl true
def profile_names, do: ["hpblmos", "hpe-ilo", "hpe-ipdu", "hpe-msa", "hpe-msl", "hpe-pdumm", "hpmsm", "hpvc", "uhp"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Hpe do
@moduledoc """
SNMP profile for Hpe devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.232
@impl true
def profile_names, do: ["hpe-mapdu"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Huawei do
@moduledoc """
SNMP profile for Huawei devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.2011
@impl true
def profile_names, do: ["huawei-optixrtn", "oceanstor", "smartax", "smartax-mdu", "yunshan"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Ibm do
@moduledoc """
SNMP profile for Ibm devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.2
@impl true
def profile_names, do: ["ibm-amm", "ibm-i", "ibm-imm", "ibmnos", "ibmtl"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Ibmc do
@moduledoc """
SNMP profile for Ibmc devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.2011
@impl true
def profile_names, do: ["ibmc"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Ignitenet do
@moduledoc """
SNMP profile for Ignitenet devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.259
@impl true
def profile_names, do: ["fusion"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Illustra do
@moduledoc """
SNMP profile for Illustra devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["illustra"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.ImcoPower do
@moduledoc """
SNMP profile for Imco power devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.818
@impl true
def profile_names, do: ["imcopower-big", "imcopower-ls110"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Infortrend do
@moduledoc """
SNMP profile for Infortrend devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.1714
@impl true
def profile_names, do: ["infortrend"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Inovonics do
@moduledoc """
SNMP profile for Inovonics devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.42111
@impl true
def profile_names, do: ["aaron"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Jacarta do
@moduledoc """
SNMP profile for Jacarta devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.19011
@impl true
def profile_names, do: ["interseptor"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Juniper do
@moduledoc """
SNMP profile for Juniper devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.14525
@impl true
def profile_names, do: ["juniper-mss", "juniperex2500os", "junos", "junose"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Keenetic do
@moduledoc """
SNMP profile for Keenetic devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["keeneticos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Lenovo do
@moduledoc """
SNMP profile for Lenovo devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.19046
@impl true
def profile_names, do: ["cnos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Liebert do
@moduledoc """
SNMP profile for Liebert devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.476
@impl true
def profile_names, do: ["liebert"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Linux do
@moduledoc """
SNMP profile for Linux devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["aloha"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Luminato do
@moduledoc """
SNMP profile for Luminato devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.3715
@impl true
def profile_names, do: ["luminato"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Meinberg do
@moduledoc """
SNMP profile for Meinberg devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.5597
@impl true
def profile_names, do: ["mbg-meinbergos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Microsoft do
@moduledoc """
SNMP profile for Microsoft devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["windows"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,59 @@
defmodule Towerops.Snmp.Profiles.Vendors.Mikrotik do
@moduledoc """
SNMP profile for Mikrotik devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.14988
@impl true
# Note: "routeros" is handled by the Routeros module
def profile_names, do: ["swos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Moxa do
@moduledoc """
SNMP profile for Moxa devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.8691
@impl true
def profile_names, do: ["moxa-awk"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Mrv do
@moduledoc """
SNMP profile for Mrv devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.629
@impl true
def profile_names, do: ["mrv-od", "mrvld"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.N4rf do
@moduledoc """
SNMP profile for 4rf devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.14817
@impl true
def profile_names, do: ["aprisa"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Netapp do
@moduledoc """
SNMP profile for Netapp devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["netapp"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Netgear do
@moduledoc """
SNMP profile for Netgear devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.4526
@impl true
def profile_names, do: ["netgear"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Netping do
@moduledoc """
SNMP profile for Netping devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.25728
@impl true
def profile_names, do: ["uniping"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,59 @@
defmodule Towerops.Snmp.Profiles.Vendors.Nokia do
@moduledoc """
SNMP profile for Nokia devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.6486
@impl true
# Note: "stellar" is handled by the Stellar module
def profile_names, do: ["aos", "aos6", "aos7", "nokia-1830", "nokia-isam", "srlinux", "timos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Opengear do
@moduledoc """
SNMP profile for Opengear devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.25049
@impl true
def profile_names, do: ["opengear"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Orolia do
@moduledoc """
SNMP profile for Orolia devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.18837
@impl true
def profile_names, do: ["orolia-securesync"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Packetlight do
@moduledoc """
SNMP profile for Packetlight devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["packetlight"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Paloalto do
@moduledoc """
SNMP profile for Paloalto devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: unknown - uses standard MIB OIDs
@impl true
def profile_names, do: ["panos"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Patton do
@moduledoc """
SNMP profile for Patton devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.1768
@impl true
def profile_names, do: ["patton-sn"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Pbi do
@moduledoc """
SNMP profile for Pbi devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.2021
@impl true
def profile_names, do: ["ird"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Pegasus do
@moduledoc """
SNMP profile for Pegasus devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.6368
@impl true
def profile_names, do: ["pegasus"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Polycom do
@moduledoc """
SNMP profile for Polycom devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.2684
@impl true
def profile_names, do: ["polycomLens"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Primekey do
@moduledoc """
SNMP profile for Primekey devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.8072
@impl true
def profile_names, do: ["primekey", "primekey-sw"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,81 @@
defmodule Towerops.Snmp.Profiles.Vendors.Printer do
@moduledoc """
SNMP profile for Printer devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.1602
@impl true
def profile_names,
do: [
"brother",
"canonprinter",
"dell-laser",
"developprinter",
"epson",
"gestetner",
"jetdirect",
"konica",
"kyocera",
"lanier",
"lexmarkprinter",
"nrg",
"okilan",
"ricoh",
"samsungprinter",
"savin",
"sharp",
"toshiba-tec",
"tsc",
"utax",
"xerox"
]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

View file

@ -0,0 +1,58 @@
defmodule Towerops.Snmp.Profiles.Vendors.Profline do
@moduledoc """
SNMP profile for Profline devices.
Auto-generated from YAML profiles. Add vendor-specific OIDs as needed.
"""
@behaviour Towerops.Snmp.Profiles.Vendors.Vendor
alias Towerops.Snmp.Client
alias Towerops.Snmp.Profiles.Vendors.Vendor
# Enterprise OID: 1.3.6.1.4.1.21222
@impl true
def profile_names, do: ["profline-sfd"]
@impl true
def detect_hardware(client_opts) do
case Client.get(client_opts, "1.3.6.1.2.1.1.1.0") do
{:ok, descr} when is_binary(descr) ->
parse_hardware_from_descr(descr)
_ ->
nil
end
end
defp parse_hardware_from_descr(descr) do
# For now, return first line or word from sysDescr
descr
|> String.split(~r/[\r\n]/)
|> List.first()
|> case do
nil -> nil
line -> String.slice(line, 0, 64)
end
end
@impl true
def wireless_oid_defs do
[
# Standard HOST-RESOURCES-MIB CPU
%{
oid: "1.3.6.1.2.1.25.3.3.1.2.1",
sensor_descr: "CPU Load",
sensor_type: "load",
sensor_unit: "%",
sensor_divisor: 1
}
]
end
@impl true
def discover_wireless_sensors(client_opts) do
Vendor.fetch_sensors(wireless_oid_defs(), client_opts)
end
end

Some files were not shown because too many files have changed in this diff Show more