package com.platform.glusterfs; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import com.platform.utils.Constant; public class ClusterInfo { public static Logger log = Logger.getLogger(ClusterInfo.class); public Map showClusterInfo() { log.info("get cluster info"); Map peerIps = new HashMap(); /* String command = "echo \"" + Constant.rootPasswd + "\"|sudo -S gluster peer status"; RunCommand runCommand = new RunCommand(); List reStrings = runCommand.runCommandWait(command); */ List reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, Constant.port, Constant.glusterPeerStatus); if (reStrings == null) { log.error("1101 command get result is null"); return null; } if (reStrings.size() == 0) { log.error("1102 command get result is nothing"); return null; } if (!(reStrings.get(0).split(":")[0].contains("Number of Peers"))) { log.error("1103 get result string wrong"); return null; } // System.out.print(reStrings.get(0)); int flag = 0; String ipString = ""; String state = ""; for (Iterator it2 = reStrings.iterator(); it2.hasNext();) { String line = (String) it2.next(); line=line.replaceAll(" +", " "); String keyValue[] = line.split(":"); if (keyValue[0].equals("Hostname")) { if (keyValue.length < 2) { log.error("1105 command get result is wrong"); continue; } ipString = keyValue[1].replaceAll(" ", ""); flag = 1; } else if (flag == 1 && keyValue[0].equals("State")) { if (keyValue.length < 2) { log.error("1106 command get result is wrong"); continue; } state = keyValue[1].replaceAll(" ", ""); flag = 0; peerIps.put(ipString, state); } } return peerIps; } public static void main(String[] args) { PropertyConfigurator.configure("log4j.properties"); System.out.println(new ClusterInfo().showClusterInfo()); } }