public ArrayList<Volume> list(Cluster cluster, String options) { IResponse response = _list(cluster, options).unexpect("error"); Collection<String> volumesProperties = StringUtils.getPropertyKeyValueSets(response.toString()); ArrayList<Volume> result = new ArrayList<Volume>(); for (String volumeProperties : volumesProperties) { result.add(Volume.fromResponse(volumeProperties)); } return result; }
/** * @param response * @return */ private static HashMap<GlusterOption, GlusterOptionValue> parseVolumeOptions(String response) { HashMap<GlusterOption, GlusterOptionValue> result = null; RepeatingHashMap<String, String> collectedAttributes = StringUtils.repeatingKeyAttributeToHash(response); if (collectedAttributes.keys().contains("options-option-name") && collectedAttributes.keys().contains("options-option-value")) { HashMap<String, String> volumeOptions = ListUtil.joinHashMap( collectedAttributes.get("options-option-name"), collectedAttributes.get("options-option-value")); result = GlusterOptionValue.fromHashMap(volumeOptions); } return result; }
public static Volume fromResponse(String response) { HashMap<String, String> attr = StringUtils.keyAttributeToHash(response); HashMap<GlusterOption, GlusterOptionValue> myvolumeOptions = parseVolumeOptions(response); Volume volume = fromAttrs(attr, myvolumeOptions); return volume; }