/* ignore flags */
continue;
}
if ("handler".equals(type)) {
final List<Value> items = new ArrayList<Value>();
items.add(new StringValue());
paramItemsMap.put(name, items);
paramDefaultMap.put(name, HARDCODED_DEFAULTS.get(name));
} else if ("boolean".equals(type)) {
final List<Value> l = new ArrayList<Value>();
l.add(CONFIG_YES);
l.add(CONFIG_NO);
paramItemsMap.put(name, l);
paramDefaultMap.put(name, CONFIG_NO);
}
if ("fence-peer".equals(name)) {
final List<Value> l = new ArrayList<Value>();
l.add(new StringValue());
if (host.getArch() != null && !host.getArch().isEmpty()) {
l.add(new StringValue(host.getHeartbeatLibPath() + "/drbd-peer-outdater -t 5"));
}
l.add(new StringValue("/usr/lib/drbd/crm-fence-peer.sh"));
paramItemsMap.put(name, l);
} else if ("after-resync-target".equals(name)) {
final List<Value> l = new ArrayList<Value>();
l.add(new StringValue());
l.add(new StringValue("/usr/lib/drbd/crm-unfence-peer.sh"));
paramItemsMap.put(name, l);
} else if ("split-brain".equals(name)) {
final List<Value> l = new ArrayList<Value>();
l.add(new StringValue());
l.add(new StringValue("/usr/lib/drbd/notify-split-brain.sh root"));
paramItemsMap.put(name, l);
} else if ("become-primary-on".equals(name)) {
final List<Value> l = new ArrayList<Value>();
l.add(new StringValue());
l.add(new StringValue("both"));
for (final Host h : hosts) {
l.add(new StringValue(h.getName()));
}
paramItemsMap.put(name, l);
} else if ("verify-alg".equals(name)
|| "csums-alg".equals(name)
|| "data-integrity-alg".equals(name)
|| "cram-hmac-alg".equals(name)) {
final List<Value> l = new ArrayList<Value>();
l.add(new StringValue());
for (final String cr : host.getAvailableCryptoModules()) {
l.add(new StringValue(cr));
}
paramItemsMap.put(name, l);
}
final NodeList optionInfos = optionNode.getChildNodes();
for (int j = 0; j < optionInfos.getLength(); j++) {
final Node optionInfo = optionInfos.item(j);
final String tag = optionInfo.getNodeName();
/* <min>, <max>, <handler>, <default> */
if ("min".equals(tag)) {
final Value minValue = new StringValue(getText(optionInfo),
parseUnit(name, paramDefaultUnitMap.get(name)));
paramMinMap.put(name, convertToUnit(name, minValue));
} else if ("max".equals(tag)) {
final Value maxValue = new StringValue(getText(optionInfo),
parseUnit(name, paramDefaultUnitMap.get(name)));
paramMaxMap.put(name, convertToUnit(name, maxValue));
} else if ("handler".equals(tag)) {
paramItemsMap.get(name).add(new StringValue(getText(optionInfo)));
} else if ("default".equals(tag)) {
paramDefaultMap.put(name, new StringValue(getText(optionInfo),
parseUnit(name, paramDefaultUnitMap.get(name))));
} else if ("unit".equals(tag)) {
paramUnitLongMap.put(name, getText(optionInfo));
} else if ("unit_prefix".equals(tag)) {
if (!"after".equals(name)