From 43fd0ea0fdb715aaea7c543c8e444ce98d8896d6 Mon Sep 17 00:00:00 2001 From: Jaemyoun <jaemyoun@gmail.com> Date: Mon, 21 Mar 2016 14:47:05 +0900 Subject: [PATCH] modify to use parameters as getProperty() --- .../java/com/yahoo/ycsb/db/RadosClient.java | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/rados/src/main/java/com/yahoo/ycsb/db/RadosClient.java b/rados/src/main/java/com/yahoo/ycsb/db/RadosClient.java index d3e90252..a53ec836 100644 --- a/rados/src/main/java/com/yahoo/ycsb/db/RadosClient.java +++ b/rados/src/main/java/com/yahoo/ycsb/db/RadosClient.java @@ -16,6 +16,7 @@ import com.yahoo.ycsb.StringByteIterator; import java.io.File; import java.util.HashMap; +import java.util.Properties; import java.util.Set; import java.util.Vector; @@ -28,24 +29,39 @@ import org.json.JSONObject; */ public class RadosClient extends DB { - // TODO: use conf file - private static String envCONFIGFILE = System.getenv("RADOS_JAVA_CONFIG_FILE"); - private static String envID = System.getenv("RADOS_JAVA_ID"); - private static String envPOOL = System.getenv("RADOS_JAVA_POOL"); - - private static final String CONFIG_FILE = envCONFIGFILE == null ? "/etc/ceph/ceph.conf" : envCONFIGFILE; - private static final String ID = envID == null ? "admin" : envID; - private static final String POOL = envPOOL == null ? "data" : envPOOL; - private static Rados rados; private static IoCTX ioctx; + public static final String CONFIG_FILE_PROPERTY = "rados.configfile"; + public static final String CONFIG_FILE_DEFAULT = "/etc/ceph/ceph.conf"; + public static final String ID_PROPERTY = "rados.id"; + public static final String ID_DEFAULT = "admin"; + public static final String POOL_PROPERTY = "rados.pool"; + public static final String POOL_DEFAULT = "data"; + public void init() throws DBException { - rados = new Rados(ID); + Properties props = getProperties(); + + String configfile = props.getProperty(CONFIG_FILE_PROPERTY); + if (configfile == null) { + configfile = CONFIG_FILE_DEFAULT; + } + + String id = props.getProperty(ID_PROPERTY); + if (id == null) { + id = ID_DEFAULT; + } + + String pool = props.getProperty(POOL_PROPERTY); + if (pool == null) { + pool = POOL_DEFAULT; + } + + rados = new Rados(id); try { - rados.confReadFile(new File(CONFIG_FILE)); + rados.confReadFile(new File(configfile)); rados.connect(); - ioctx = rados.ioCtxCreate(POOL); + ioctx = rados.ioCtxCreate(pool); } catch (RadosException e) { throw new DBException(e.getMessage() + ": " + e.getReturnValue()); } -- GitLab