module AnsibleSpecHelper
Public Class Methods
get_properties()
click to toggle source
# File lib/ansiblespec_helper.rb, line 2 def self.get_properties playbook, inventoryfile = AnsibleSpec.load_ansiblespec hosts = AnsibleSpec.load_targets(inventoryfile) properties = AnsibleSpec.load_playbook(playbook) properties.each do |var| var["hosts_childrens"] = hosts["hosts_childrens"] var["group"] = var["hosts"] if var["hosts"].to_s == "all" var["hosts"] = hosts.values.flatten elsif hosts.has_key?("#{var["hosts"]}") var["hosts"] = hosts["#{var["hosts"]}"] elsif var["hosts"].instance_of?(Array) tmp_host = var["hosts"] var["hosts"] = [] tmp_host.each do |v| if hosts.has_key?("#{v}") hosts["#{v}"].map {|target_server| target_server["hosts"] = v} var["hosts"].concat hosts["#{v}"] end end if var["hosts"].size == 0 properties = properties.compact.reject{|e| e["hosts"].length == 0} end else var["hosts"] = [] end end return properties end