Sha256: defb23bdee3ed08c4bb0fb224b2faac7623888aede34e44f134ac0715d1d7465

Contents?: true

Size: 1.54 KB

Versions: 14

Compression:

Stored size: 1.54 KB

Contents

module FsProbe
  MODDIR = File.expand_path(File.join(File.dirname(__FILE__), "modules"))

  PROBE_FILES = Dir.glob(File.join(MODDIR, "*Probe.rb*"))
  PROBE_FILES.each do |p|
    p.slice!(0..MODDIR.length)
    p.chomp!(".enc")
    p.chomp!(".rb")
  end
  # Reorder known probes for optimization
  PROBE_FILES.unshift("Fat32Probe")    if PROBE_FILES.delete("Fat32Probe")
  PROBE_FILES.unshift("Reiser4Probe")  if PROBE_FILES.delete("Reiser4Probe")
  PROBE_FILES.unshift("ReiserFSProbe") if PROBE_FILES.delete("ReiserFSProbe")
  PROBE_FILES.unshift("Ext4Probe")     if PROBE_FILES.delete("Ext4Probe")
  PROBE_FILES.unshift("Ext3Probe")     if PROBE_FILES.delete("Ext3Probe")
  PROBE_FILES.unshift("NTFSProbe")     if PROBE_FILES.delete("NTFSProbe")
  PROBE_FILES.unshift("XFSProbe")      if PROBE_FILES.delete("XFSProbe")

  def self.getFsMod(dobj, probes = nil)
    probes = PROBE_FILES if probes.nil?
    probes = [probes] unless probes.kind_of?(Array)

    fname = dobj.dInfo.fileName || "" rescue ""
    fname = dobj.dInfo.lvObj.lvName || "" if fname.empty? rescue ""
    partNum = dobj.partNum

    probes.each do |pmod|
      $log.debug "MIQ(FsProbe-getFsMod) FS probe attempting [#{pmod}] for [#{fname}] [partition: #{partNum}]"
      require_relative "modules/#{pmod}"
      if Object.const_get(pmod).probe(dobj)
        mod = pmod.chomp("Probe")
        $log.info "MIQ(FsProbe-getFsMod) FS probe detected [#{mod}] for [#{fname}] [partition: #{partNum}]"
        require_relative "modules/#{mod}"
        return Object.const_get(mod)
      end
    end
    nil
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
manageiq-smartstate-0.2.6 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.2.5 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.2.4 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.2.3 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.2.2 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.2.1 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.2.0 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.1.6 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.1.5 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.1.4 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.1.3 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.1.2 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.1.1 lib/fs/MiqFS/FsProbe.rb
manageiq-smartstate-0.1.0 lib/fs/MiqFS/FsProbe.rb