Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def software
- @seen_software = Array.new
- @inventory = Array.new
- package_filter = Regexp.new(/(.*)\-([\d\.]+)\W([a-z]*.*)/, Regexp::IGNORECASE);
- sbms = Sbm.where(role: "cloud")
- sbms.each do |sbm|
- if sbm.packages
- software = JSON.parse(sbm.packages)
- else
- software = []
- end
- packages = Array.new
- software.each do |raw|
- match = package_filter.match(raw)
- if match
- @seen_software.push(match[1])
- packages.push({"name" => match[1], "version" => match[2], "revision" => match[3]})
- end
- end
- packages.sort_by!{ |hash| hash[:name].to_s }
- @inventory.push({"name" => sbm.hostname, "id" => sbm.id, "software" => packages})
- end
- @seen_software.uniq!.sort_by! {|name| name.to_s }
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement