79: def entry2hash(entry, fqdn = false)
80: result = {}
81:
82: cn = entry.dn[ /cn\s*=\s*([^,\s]+)/i,1]
83: dcs = entry.dn.scan(/dc\s*=\s*([^,\s]+)/i)
84: result[:name] = fqdn ? ([cn]+dcs).join('.') : cn
85: result[:parent] = get_parent_from_entry(entry) if parent_attribute
86: result[:classes] = get_classes_from_entry(entry)
87: result[:stacked] = get_stacked_values_from_entry(entry)
88: result[:parameters] = get_parameters_from_entry(entry)
89:
90: result[:environment] = result[:parameters]["environment"] if result[:parameters]["environment"]
91:
92: result[:stacked_parameters] = {}
93:
94: if result[:stacked]
95: result[:stacked].each do |value|
96: param = value.split('=', 2)
97: result[:stacked_parameters][param[0]] = param[1]
98: end
99: end
100:
101: if result[:stacked_parameters]
102: result[:stacked_parameters].each do |param, value|
103: result[:parameters][param] = value unless result[:parameters].include?(param)
104: end
105: end
106:
107: result[:parameters] = convert_parameters(result[:parameters])
108:
109: result
110: end