package com.alibaba.doris.admin.service.impl;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.alibaba.doris.admin.service.AdminService;
import com.alibaba.doris.common.util.IPAddressUtil;
/**
* @project :Doris
* @author : len.liu
* @datetime : 2011-7-4 下午06:14:43
* @version :
* @Modification:
*/
public class AdminServiceImp implements AdminService {
private static final Log logger = LogFactory.getLog(AdminServiceImp.class);
private String masterIP;
public boolean isMasterAdmin() {
String ip = IPAddressUtil.getIPAddress();
return isMasterAdmin(ip);
}
public boolean isMasterAdmin(String ip) {
if( StringUtils.isBlank(ip) || StringUtils.isBlank(masterIP)) {
return false;
}
InetAddress address;
try {
address = InetAddress.getByName( masterIP );
String aIP = address.getHostAddress();
return StringUtils.equals(ip, aIP);
} catch (UnknownHostException e) {
logger.error("Invalid master ip/domain: " + masterIP, e);
throw new IllegalArgumentException("Invalid master ip/domain: " + masterIP, e);
}
}
public void setMasterIP(String masterIP) {
this.masterIP = masterIP;
}
public static void main(String[] args) {
AdminServiceImp adminServiceImp = new AdminServiceImp();
adminServiceImp.setMasterIP("doris-test.alibaba-inc.com");
logger.info("Local is master ? " + adminServiceImp.isMasterAdmin() ) ;
}
}