Module: DiskProbe
- Defined in:
- lib/disk/DiskProbe.rb
Constant Summary collapse
- MODDIR =
File.(File.join(File.dirname(__FILE__), "modules"))
- PROBE_FILES =
Dir.glob(File.join(MODDIR, "*Probe.rb*"))
Class Method Summary collapse
Class Method Details
.getDiskMod(dobj, probes = nil) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/disk/DiskProbe.rb', line 18 def self.getDiskMod(dobj, probes = nil) probes = PROBE_FILES if probes.nil? probes = [probes] unless probes.kind_of?(Array) fname = dobj.fileName rescue "" mod = nil probes.each do |pmod| $log.debug "MIQ(DiskProbe-getDiskMod) Disk probe attempting [#{pmod}] for [#{fname}]" require_relative "modules/#{pmod}" begin mod = Object.const_get(pmod).probe(dobj) if mod $log.info "MIQ(DiskProbe-getDiskMod) Disk probe detected [#{pmod.chomp("Probe")}-#{mod}] for [#{fname}]" require_relative "modules/#{mod}" return Object.const_get(mod) end rescue MiqException::MiqInvalidCredentialsError => err $log.error "MIQ(DiskProbe-getDiskMod) [#{pmod.chomp("Probe")}-#{mod}] for [#{fname}]: #{err}" raise err rescue => err $log.warn "MIQ(DiskProbe-getDiskMod) [#{pmod.chomp("Probe")}-#{mod}] for [#{fname}]: #{err}" end end nil end |
.getDiskModForDisk(disk, probes = nil) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/disk/DiskProbe.rb', line 45 def self.getDiskModForDisk(disk, probes = nil) probes ||= PROBE_FILES probes = [probes] unless probes.kind_of?(Array) fname = disk.dInfo.fileName rescue "" probes.each do |pmodstr| $log.debug "MIQ(DiskProbe-getDiskModForDisk) Disk probe attempting [#{pmodstr}] for [#{fname}]" require_relative "modules/#{pmodstr}" begin pmod = Object.const_get(pmodstr) unless pmod.respond_to?(:stackable?) && pmod.stackable? $log.debug "MIQ(DiskProbe-getDiskModForDisk) Disk probe skipping [#{pmodstr}], not stackable" next end dmodstr = pmod.probeByDisk(disk) if dmodstr $log.info "MIQ(DiskProbe-getDiskModForDisk) Disk probe detected [#{pmodstr.chomp("Probe")}-#{dmodstr}] for [#{fname}]" require_relative "modules/#{dmodstr}" return Object.const_get(dmodstr) end rescue => err $log.warn "MIQ(DiskProbe-getDiskModForDisk) [#{pmodstr.chomp("Probe")}-#{dmodstr}] for [#{fname}]: #{err}" end end $log.info "MIQ(DiskProbe-getDiskModForDisk) No module detected for [#{fname}]" nil end |