You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.1 KiB
87 lines
2.1 KiB
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<String, String> showClusterInfo() {
|
|
log.info("get cluster info");
|
|
Map<String, String> peerIps = new HashMap<String, String>();
|
|
|
|
/*
|
|
String command = "echo \"" + Constant.rootPasswd + "\"|sudo -S gluster peer status";
|
|
RunCommand runCommand = new RunCommand();
|
|
List<String> reStrings = runCommand.runCommandWait(command);
|
|
*/
|
|
List<String> 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());
|
|
}
|
|
}
|