public JSONObject toJSONObject() throws JSONException {
    JSONObject jsonObject =
        new JSONObject().put("clusterName", clusterName).put("version", version).put("datacenters", new JSONArray());
    for (Datacenter datacenter : datacenters) {
      jsonObject.accumulate("datacenters", datacenter.toJSONObject());
    }
    return jsonObject;
  }
Finds Disk by hostname, port, and mount path.

@param hostname of datanode
@param port of datanode
@param mountPath of disk
@return Disk or null if not found.
ambry-clustermap/src/main/java/com/github/ambry/clustermap/HardwareLayout.java