25: def self.instances
26: packages = []
27:
28:
29: output = rpm "--version"
30: sig = "--nosignature"
31: if output =~ /RPM version (([123].*)|(4\.0.*))/
32: sig = ""
33: end
34:
35:
36: begin
37: execpipe("#{command(:rpm)} -qa #{sig} --nodigest --qf '#{NEVRAFORMAT}\n'") { |process|
38:
39: process.each { |line|
40: hash = nevra_to_hash(line)
41: packages << new(hash)
42: }
43: }
44: rescue Puppet::ExecutionFailure
45: raise Puppet::Error, "Failed to list packages"
46: end
47:
48: return packages
49: end