SecBSD's official ports repository
This commit is contained in:
commit
2c0afcbbf3
64331 changed files with 5339189 additions and 0 deletions
22
sysutils/ruby-facter/files/resolvers/dhcp.rb
Normal file
22
sysutils/ruby-facter/files/resolvers/dhcp.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../networking'
|
||||
|
||||
module Facter
|
||||
module Resolvers
|
||||
module Openbsd
|
||||
class Dhcp < Facter::Resolvers::Networking
|
||||
init_resolver
|
||||
class << self
|
||||
|
||||
def extract_dhcp(interface_name, raw_data, parsed_interface_data)
|
||||
return unless raw_data =~ /status:\s+active/
|
||||
|
||||
result = Facter::Core::Execution.execute("dhcpleasectl -l #{interface_name}", logger: log)
|
||||
parsed_interface_data[:dhcp] = extract_values(result, /\sdhcp server (\S+)/).first unless result.empty?
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
41
sysutils/ruby-facter/files/resolvers/dmi.rb
Normal file
41
sysutils/ruby-facter/files/resolvers/dmi.rb
Normal file
|
@ -0,0 +1,41 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Facter
|
||||
module Resolvers
|
||||
module Openbsd
|
||||
class DmiBios < BaseResolver
|
||||
init_resolver
|
||||
|
||||
class << self
|
||||
private
|
||||
|
||||
def post_resolve(fact_name, _options)
|
||||
@fact_list.fetch(fact_name) { read_facts(fact_name) }
|
||||
end
|
||||
|
||||
CTL_HW = 6
|
||||
HW_VENDOR = 14
|
||||
HW_PRODUCT = 15
|
||||
HW_VERSION = 16
|
||||
HW_SERIALNO = 17
|
||||
HW_UUID = 18
|
||||
|
||||
def read_facts(fact_name)
|
||||
require 'facter/resolvers/bsd/ffi/ffi_helper'
|
||||
|
||||
@fact_list[:bios_vendor] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_VENDOR])
|
||||
@fact_list[:bios_version] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_VERSION])
|
||||
|
||||
@fact_list[:product_name] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_PRODUCT])
|
||||
@fact_list[:product_serial] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_SERIALNO])
|
||||
@fact_list[:product_uuid] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_UUID])
|
||||
|
||||
@fact_list[:sys_vendor] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_VENDOR])
|
||||
|
||||
@fact_list[fact_name]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
72
sysutils/ruby-facter/files/resolvers/mountpoints.rb
Normal file
72
sysutils/ruby-facter/files/resolvers/mountpoints.rb
Normal file
|
@ -0,0 +1,72 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Facter
|
||||
module Resolvers
|
||||
module Openbsd
|
||||
class Mountpoints < BaseResolver
|
||||
init_resolver
|
||||
|
||||
BLOCK_SIZE = 512
|
||||
|
||||
class << self
|
||||
private
|
||||
|
||||
def post_resolve(fact_name, _options)
|
||||
@fact_list.fetch(fact_name) { read_mount(fact_name) }
|
||||
end
|
||||
|
||||
def read_mount(fact_name)
|
||||
@fact_list[:mountpoints] = {}
|
||||
output = Facter::Core::Execution.execute('mount', logger: log)
|
||||
output.split("\n").map do |line|
|
||||
add_mount_points_fact(line)
|
||||
end
|
||||
|
||||
retrieve_sizes_for_mounts
|
||||
@fact_list[fact_name]
|
||||
end
|
||||
|
||||
def add_mount_points_fact(line)
|
||||
elem = line.split("\s")
|
||||
options = elem.drop(5)
|
||||
options.each { |option| option.tr!('(),', '') }
|
||||
@fact_list[:mountpoints][elem[2]] = { device: elem[0], filesystem: elem[4],
|
||||
options: options }
|
||||
end
|
||||
|
||||
def retrieve_sizes_for_mounts
|
||||
output = Facter::Core::Execution.execute('df -P', logger: log)
|
||||
output.split("\n").drop(1).map do |line|
|
||||
next if line =~ /-\s+-\s+-/
|
||||
|
||||
mount_info = line.split("\s")
|
||||
mount_info[3] = translate_to_bytes(mount_info[3])
|
||||
mount_info[2] = translate_to_bytes(mount_info[2])
|
||||
mount_info[1] = translate_to_bytes(mount_info[1])
|
||||
compute_sizes(mount_info)
|
||||
end
|
||||
end
|
||||
|
||||
def translate_to_bytes(strin_size)
|
||||
strin_size.to_i * BLOCK_SIZE
|
||||
end
|
||||
|
||||
def compute_sizes(info)
|
||||
available_bytes = info[3]
|
||||
used_bytes = info[2]
|
||||
size_bytes = info[1]
|
||||
@fact_list[:mountpoints][info.last].merge!(
|
||||
capacity: Facter::Util::Resolvers::FilesystemHelper.compute_capacity(used_bytes, size_bytes),
|
||||
available_bytes: available_bytes,
|
||||
used_bytes: used_bytes,
|
||||
size_bytes: size_bytes,
|
||||
available: Facter::Util::Facts::UnitConverter.bytes_to_human_readable(available_bytes),
|
||||
used: Facter::Util::Facts::UnitConverter.bytes_to_human_readable(used_bytes),
|
||||
size: Facter::Util::Facts::UnitConverter.bytes_to_human_readable(size_bytes)
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
41
sysutils/ruby-facter/files/resolvers/virtual.rb
Normal file
41
sysutils/ruby-facter/files/resolvers/virtual.rb
Normal file
|
@ -0,0 +1,41 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Facter
|
||||
module Resolvers
|
||||
module Openbsd
|
||||
class Virtual < BaseResolver
|
||||
init_resolver
|
||||
|
||||
class << self
|
||||
#:model
|
||||
|
||||
VM_GUEST_SYSCTL_NAMES = {
|
||||
'VMM' => 'vmm',
|
||||
'vServer' => 'vserver',
|
||||
'oracle' => 'virtualbox',
|
||||
'xen' => 'xenu',
|
||||
'none' => nil
|
||||
}.freeze
|
||||
|
||||
private
|
||||
|
||||
def post_resolve(fact_name, _options)
|
||||
@fact_list.fetch(fact_name) { read_facts(fact_name) }
|
||||
end
|
||||
|
||||
CTL_HW = 6
|
||||
HW_PRODUCT = 15
|
||||
|
||||
def read_facts(fact_name)
|
||||
require 'facter/resolvers/bsd/ffi/ffi_helper'
|
||||
|
||||
vm = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_PRODUCT])
|
||||
vm = VM_GUEST_SYSCTL_NAMES[vm] if VM_GUEST_SYSCTL_NAMES.key?(vm)
|
||||
@fact_list[:vm] = vm
|
||||
@fact_list[fact_name]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue