package com.alibaba.doris.common.adminservice.factory;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;
import junit.framework.TestCase;
import com.alibaba.doris.common.ConsistentErrorType;
import com.alibaba.doris.common.adminservice.AdminServiceFactory;
import com.alibaba.doris.common.adminservice.CheckFailService;
import com.alibaba.doris.common.adminservice.CommonConfigService;
import com.alibaba.doris.common.adminservice.ConsistentErrorReportService;
import com.alibaba.doris.common.adminservice.MigrateReportService;
import com.alibaba.doris.common.adminservice.MonitorService;
import com.alibaba.doris.common.adminservice.NamespaceService;
import com.alibaba.doris.common.adminservice.RouterConfigService;
import com.alibaba.doris.common.adminservice.StoreNodeService;
import com.alibaba.doris.common.adminservice.VirtualNumberService;
import com.alibaba.doris.common.adminservice.connenctor.AdminConnector;
public class AdminServiceFactoryTest extends TestCase {
CheckFailService cfs = AdminServiceFactory.getCheckFailService();
CommonConfigService ccs = AdminServiceFactory.getCommonConfigService();
MigrateReportService mrs = AdminServiceFactory.getMigrateReportService();
MonitorService ms = AdminServiceFactory.getMonitorService();
NamespaceService nss = AdminServiceFactory.getNamespaceService();
RouterConfigService rcs = AdminServiceFactory.getRouterConfigService();
StoreNodeService sns = AdminServiceFactory.getStoreNodeService();
VirtualNumberService vms = AdminServiceFactory.getVirtualNumberService();
ConsistentErrorReportService consistentService = AdminServiceFactory.getConsistentErrorReportService();
public void setUp() {
Properties properties = loadProperties("dorisconfig.properties");
AdminConnector conn = AdminConnector.getInstance();
conn.init(properties);
}
private Properties loadProperties(String location) {
Properties properties = null;
// load config & parse config
URL url = getClass().getClassLoader().getResource(location);
InputStream is = null;
if (url == null) {
throw new IllegalArgumentException("failed to load properties not set!" + location);
}
try {
is = url.openStream();
properties = new Properties();
properties.load(is);
} catch (IOException e) {
fail(e.getMessage());
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
fail(e.getMessage());
e.printStackTrace();
}
}
return properties;
}
// public void testCheckFailService() {
// StoreNode sn = new StoreNode();
// sn.setPhId("1.1.1.1:80");
// boolean c = cfs.checkFailNode(sn);
// print("check result:" + c);
// }
//
// public void testCommonConfigService() {
// List<String> paras = new ArrayList<String>();
// paras.add(AdminServiceConstants.ROUTE_CONFIG_ACTION);
// Map<String, String> map = ccs.getConfig(paras);
// print("common config:" + map);
// }
//
// public void testMigrateReportService() {
// String r = mrs.report("1.1.1.1:80", "1.2.2.2:81", 0, MigrateStatusEnum.COMMAND_FAIL, "w");
// print("migrate:" + r);
// }
//
// public void testMonitorService() {
// System.out.println("Monitor: "+ms.report(null, 9000));
// }
public void testConsistentErrorReportService() {
String exceptionMsg = "test error";
int namespaceId = 2;
String key = "test key";
String phisicalIps = "10.0.0.1:8080;10.0.0.2:9090";
Boolean result = consistentService.report(namespaceId, key, phisicalIps, exceptionMsg,
ConsistentErrorType.read, Long.toString(System.currentTimeMillis()));
// assertEquals(true, result.booleanValue());
}
// XXU reopen this case later
/*
* public void testNamespaceService() { JettyServer server = new JettyServer(); try { server.startServer(new
* NamespaceServlet()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
* Map<String, Namespace> nsm = nss.fetchNameSpace(); System.out.println("all name space: " + nsm); String name =
* "x"; Namespace ns = nss.fetchNameSpace(name); print("name space of " + name + " is : " + ns); name = "mao"; ns =
* nss.fetchNameSpace(name); print("name space of " + name + " is : " + ns); try { server.stopServer(); } catch
* (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
*/
// XXU reopen this case later
/*
* public void testRouterConfigService() { String routeConfig = rcs.getRouteConfig(); RouteConfigInstance
* configInstance = JSON.parseObject(routeConfig, RouteConfigInstance.class); // assertNotNull(configInstance); //
* assertNotNull(configInstance.getStoreNodes()); long version = configInstance.getVersion() ;
* assertTrue(configInstance.getVersion() > 0);
* System.out.println("==========Testing method: RouterConfigService#getRouteConfig()========>");
* System.out.println("route config instancde version:" + configInstance.getVersion()); for (StoreNode storeNode :
* configInstance.getStoreNodes()) { StringBuilder nodeDetail = new StringBuilder();
* nodeDetail.append("node ip:").append(storeNode.getIp()).append(";");
* nodeDetail.append("node logical id:").append(storeNode.getLogicId()).append(";");
* nodeDetail.append("node physical id:").append(storeNode.getPhId()).append(";");
* nodeDetail.append("node port:").append(storeNode.getPort()).append(";");
* nodeDetail.append("node url:").append(storeNode.getURL()).append(";");
* nodeDetail.append("node sequence:").append(storeNode.getSequence()).append(";");
* nodeDetail.append("node status:").append(storeNode.getStatus()).append(";");
* System.out.println(nodeDetail.toString()); } routeConfig = rcs.getRouteConfig(0L); configInstance =
* JSON.parseObject(routeConfig, RouteConfigInstance.class);
* System.out.println("==========Testing method: RouterConfigService#getRouteConfig(0)========>");
* System.out.println("route config instancde version:" + configInstance.getVersion()); // assertEquals(version,
* configInstance.getVersion()); routeConfig = rcs.getRouteConfig(version); configInstance =
* JSON.parseObject(routeConfig, RouteConfigInstance.class); // assertNull(configInstance); routeConfig =
* rcs.getRouteConfig(version + 1); configInstance = JSON.parseObject(routeConfig, RouteConfigInstance.class); //
* assertNull(configInstance); routeConfig = rcs.getRouteConfig(version -1); configInstance =
* JSON.parseObject(routeConfig, RouteConfigInstance.class); // assertEquals(version, configInstance.getVersion());
* }
*/
// public void testStoreNodeService() {
// StoreNode sn = sns.getStoreNode("10.20.30.50:8086");
// print(sn);
// }
/**
* XXU:reopen this case later
*/
/*
* public void testVirtualNumberService() { int v = vms.getVirtualNumber(); print("virtual number :" + v); }
*/
private void print(Object s) {
System.out.println(s);
}
}