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;
 }