class Facter::Resolvers::Freebsd::Geom
Constants
- DISKS_ATTRIBUTES
- PARTITIONS_ATTRIBUTES
Private Class Methods
each_geom_class_provider(geom_class_name, geom_topology, &block)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 41 def each_geom_class_provider(geom_class_name, geom_topology, &block) REXML::XPath.each(geom_topology, "/mesh/class[name/text() = '#{geom_class_name}']/geom/provider", &block) end
geom_confxml()
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 92 def geom_confxml Facter::Freebsd::FfiHelper.sysctl_by_name(:string, 'kern.geom.confxml') end
geom_topology()
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 88 def geom_topology REXML::Document.new(geom_confxml) end
post_resolve(fact_name)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 13 def post_resolve(fact_name) @fact_list.fetch(fact_name) { read_facts(fact_name) } end
read_data(fact_name, geom_topology, data_to_read)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 28 def read_data(fact_name, geom_topology, data_to_read) fact_list_key = fact_name == 'DISK' ? :disks : :partitions @fact_list[fact_list_key] = {} each_geom_class_provider(fact_name, geom_topology) do |provider| name = provider.get_text('./name').value @fact_list[fact_list_key][name] = data_to_read.map do |x| send(x, provider) end.inject(:merge) end end
read_facts(fact_name)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 17 def read_facts(fact_name) require_relative 'ffi/ffi_helper' require 'rexml/document' topology = geom_topology read_data('DISK', topology, DISKS_ATTRIBUTES) read_data('PART', topology, PARTITIONS_ATTRIBUTES) @fact_list[fact_name] end
read_model(provider)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 56 def read_model(provider) res = {} return res unless (model = provider.get_text('./config/descr')) res[:model] = model.value res end
read_partlabel(provider)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 64 def read_partlabel(provider) res = {} return res unless (rawuuid = provider.get_text('./config/label')) res[:partlabel] = rawuuid.value res end
read_partuuid(provider)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 72 def read_partuuid(provider) res = {} return res unless (rawuuid = provider.get_text('./config/rawuuid')) res[:partuuid] = rawuuid.value res end
read_serial_number(provider)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 80 def read_serial_number(provider) res = {} return res unless (serial_number = provider.get_text('./config/ident')) res[:serial_number] = serial_number.value res end
read_size(provider)
click to toggle source
# File lib/facter/resolvers/freebsd/geom_resolver.rb, line 45 def read_size(provider) res = {} return res unless (mediasize = provider.get_text('mediasize')) mediasize = Integer(mediasize.value) res[:size_bytes] = mediasize res[:size] = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(mediasize) res end