diff --git a/config/single_node_rest_server/config/server.properties b/config/single_node_rest_server/config/server.properties
index 396ff5944b..fb0edc8fb6 100644
--- a/config/single_node_rest_server/config/server.properties
+++ b/config/single_node_rest_server/config/server.properties
@@ -7,6 +7,7 @@ max.threads=100
http.enable=true
socket.enable=true
+rest.enable=true
# BDB
bdb.write.transactions=false
diff --git a/contrib/restclient/src/java/voldemort/restclient/RestServerAPITest.java b/contrib/restclient/src/java/voldemort/restclient/RestServerAPITest.java
index 8b8b5c8c4c..a30af992e5 100644
--- a/contrib/restclient/src/java/voldemort/restclient/RestServerAPITest.java
+++ b/contrib/restclient/src/java/voldemort/restclient/RestServerAPITest.java
@@ -62,7 +62,7 @@ public static void oneTimeSetUp() {
logger.info("********************Starting REST Server********************");
restClientConfig = new RESTClientConfig();
- restClientConfig.setHttpBootstrapURL("http://localhost:8081")
+ restClientConfig.setHttpBootstrapURL("http://localhost:8085")
.setTimeoutMs(1500, TimeUnit.MILLISECONDS)
.setMaxR2ConnectionPoolSize(100);
clientFactory = new HttpClientFactory();
diff --git a/src/java/voldemort/server/VoldemortConfig.java b/src/java/voldemort/server/VoldemortConfig.java
index c3dfd5e8f7..b3129ce9e2 100644
--- a/src/java/voldemort/server/VoldemortConfig.java
+++ b/src/java/voldemort/server/VoldemortConfig.java
@@ -36,6 +36,7 @@
import voldemort.server.http.HttpService;
import voldemort.server.niosocket.NioSocketService;
import voldemort.server.protocol.admin.AsyncOperation;
+import voldemort.server.rest.RestService;
import voldemort.server.scheduler.DataCleanupJob;
import voldemort.server.scheduler.slop.BlockingSlopPusherJob;
import voldemort.server.scheduler.slop.StreamingSlopPusherJob;
@@ -229,6 +230,7 @@ public class VoldemortConfig implements Serializable {
// Should be removed once the proxy put implementation is stable.
private boolean proxyPutsDuringRebalance;
+ private boolean enableRestService;
private int numRestServiceNettyBossThreads;
private int numRestServiceNettyWorkerThreads;
private int numRestServiceStorageThreads;
@@ -507,6 +509,7 @@ public VoldemortConfig(Props props) {
this.enableNetworkClassLoader = props.getBoolean("enable.network.classloader", false);
// TODO: REST-Server decide on the numbers
+ this.enableRestService = props.getBoolean("rest.enable", false);
this.numRestServiceNettyBossThreads = props.getInt("num.rest.service.netty.boss.threads", 1);
this.numRestServiceNettyWorkerThreads = props.getInt("num.rest.service.netty.worker.threads",
10);
@@ -2812,6 +2815,22 @@ public void setGossipInterval(int gossipIntervalMs) {
this.gossipIntervalMs = gossipIntervalMs;
}
+ public boolean isRestServiceEnabled() {
+ return enableRestService;
+ }
+
+ /**
+ * Whether or not the {@link RestService} is enabled
+ *
+ * - Property :"rest.enable"
+ * - Default :false
+ *
+ *
+ */
+ public void setEnableRestService(boolean enableRestService) {
+ this.enableRestService = enableRestService;
+ }
+
public int getNumRestServiceNettyBossThreads() {
return numRestServiceNettyBossThreads;
}
@@ -2872,4 +2891,5 @@ public int getRestServiceStorageThreadPoolQueueSize() {
public void setRestServiceStorageThreadPoolQueueSize(int restServiceStorageThreadPoolQueueSize) {
this.restServiceStorageThreadPoolQueueSize = restServiceStorageThreadPoolQueueSize;
}
+
}
diff --git a/src/java/voldemort/server/VoldemortServer.java b/src/java/voldemort/server/VoldemortServer.java
index 9c42604108..0e324d0735 100644
--- a/src/java/voldemort/server/VoldemortServer.java
+++ b/src/java/voldemort/server/VoldemortServer.java
@@ -29,6 +29,7 @@
import voldemort.VoldemortException;
import voldemort.annotations.jmx.JmxOperation;
+import voldemort.client.protocol.RequestFormatType;
import voldemort.client.protocol.admin.AdminClient;
import voldemort.cluster.Cluster;
import voldemort.cluster.Node;
@@ -37,6 +38,7 @@
import voldemort.common.service.ServiceType;
import voldemort.common.service.VoldemortService;
import voldemort.server.gossip.GossipService;
+import voldemort.server.http.HttpService;
import voldemort.server.jmx.JmxService;
import voldemort.server.niosocket.NioSocketService;
import voldemort.server.protocol.RequestHandlerFactory;
@@ -190,18 +192,23 @@ private List createServices() {
if(voldemortConfig.isHttpServerEnabled()) {
/*
- * TODO REST-Server 1. Need to decide on replacing HttpService 2.
- * Need to decide on the number of threads. This needs to be
- * configurable
+ * TODO REST-Server 1. Need to decide on replacing HttpService
*/
+ services.add(new HttpService(this,
+ storageService,
+ storeRepository,
+ RequestFormatType.VOLDEMORT_V1,
+ voldemortConfig.getMaxThreads(),
+ identityNode.getHttpPort()));
+
+ }
+ if(voldemortConfig.isRestServiceEnabled()) {
/*
- * services.add(new HttpService(this, storageService,
- * storeRepository, RequestFormatType.VOLDEMORT_V1,
- * voldemortConfig.getMaxThreads(), identityNode.getHttpPort()));
+ * TODO REST-Server 1. Need to decide on the number of threads. This
+ * needs to be configurable 2. Need to configure the Rest Service
+ * port instead of hard coding
*/
- services.add(new RestService(voldemortConfig,
- identityNode.getHttpPort(),
- storeRepository));
+ services.add(new RestService(voldemortConfig, 8085, storeRepository));
}
if(voldemortConfig.isSocketServerEnabled()) {
RequestHandlerFactory socketRequestHandlerFactory = new SocketRequestHandlerFactory(storageService,
diff --git a/test/unit/voldemort/server/rest/RestServerProtocolTests.java b/test/unit/voldemort/server/rest/RestServerProtocolTests.java
index 2e6028b7a2..f7bf8a1cb2 100644
--- a/test/unit/voldemort/server/rest/RestServerProtocolTests.java
+++ b/test/unit/voldemort/server/rest/RestServerProtocolTests.java
@@ -44,7 +44,7 @@ public class RestServerProtocolTests {
@BeforeClass
public static void oneTimeSetUp() {
storeNameStr = "test";
- urlStr = "http://localhost:8081/";
+ urlStr = "http://localhost:8085/";
config = VoldemortConfig.loadFromVoldemortHome("config/single_node_rest_server/");
key1 = "The longest key ";
vectorClock = new VectorClock();
diff --git a/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest b/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest
index edd5f2631c..caa68c7e08 100644
--- a/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest
+++ b/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest
@@ -6,42 +6,42 @@ common tests:
missing routing type
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Missing routing type parameter.
invalid routing type
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 5" http://localhost:8081/test/a2V5MQ==
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 5" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Incorrect routing type code: 5. Details: Invalid RequestRoutingType code passed 5
non number routing type
-curl -i -X DELETE --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: asdf" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: asdf" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Incorrect routing type parameter. Cannot parse this to long: asdf. Details: For input string: "asdf"
missing timeout
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Missing timeout parameter.
non number timeout
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000sdfga" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5MQ==
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000sdfga" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Incorrect timeout parameter. Cannot parse this to long: 10000sdfga. Details: For input string: "10000sdfga"
missing timestamp
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Missing origin time parameter.
non number timestamp
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:137dfg0912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:137dfg0912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Incorrect origin time parameter. Cannot parse this to long: 137dfg0912076. Details: For input string: "137dfg0912076"
missing key
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/
Failure: 400 Bad Request. Error: No key specified !
@@ -50,7 +50,7 @@ missing store name ?
include inconsistency resolverheader
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "X-VOLD-Inconsistency-Resolver:custom" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "X-VOLD-Inconsistency-Resolver:custom" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Cannot have Inconsitence resolver header
@@ -66,22 +66,22 @@ get version tests
put tests
---------
missing vector clock
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "Content-Type: text" --data "How are you doing today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "Content-Type: text" --data "How are you doing today" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Missing Vector Clock
invalid format
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{s\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{s\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Invalid Vector Clock
missing content type
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --data "How are you doing today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --data "How are you doing today" http://localhost:8085/test/a2V5MQ==
This command will not error out since default values for CONTENT_TYPE will be assumed if the header is not explicitly specified
empty content type
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: " --data "How are you doing today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: " --data "How are you doing today" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Missing Content-Type header
@@ -90,33 +90,33 @@ invalid content type
missing content length
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8081/test/a2MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you doing today" http://localhost:8085/test/a2MQ==
This command will not error out since CONTENT_LENGTH will be sent automatically by the http client if the header is not explicitly specified
non number content length
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --header "Content-Length: sdf" --data "How are you doing today" http://localhost:8081/test/sdf2MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --header "Content-Length: sdf" --data "How are you doing today" http://localhost:8085/test/sdf2MQ==
curl: (52) Empty reply from server
empty content length
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --header "Content-Length: " --data "How are you doing today" http://localhost:8081/test/sdf2MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --header "Content-Length: " --data "How are you doing today" http://localhost:8085/test/sdf2MQ==
Failure: 400 Bad Request. Missing Content-Length header
delete tests
------------
missing vector clock
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Missing Vector Clock
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Missing Vector Clock
invalid format of vector clock
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timest\"version\":34,\"nodeId\":0}]}" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timest\"version\":34,\"nodeId\":0}]}" http://localhost:8085/test/a2V5MQ==
Failure: 400 Bad Request. Invalid Vector Clock
@@ -147,13 +147,13 @@ BASIC FUNCTIONALITY TESTS
1.put(Key1, value1, version1)
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" --header "Content-Type: text" --data "How are you today" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 201 Created
Content-Length: 0
2.get(key1)
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5MQ==
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
@@ -170,13 +170,13 @@ How are you today
3.put(key2, value2, version2)
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370911234" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036571234,\"versions\":[{\"version\":25,\"nodeId\":0}]}" --header "Content-Type: text" --data "Hi there" http://localhost:8081/test/a2V5
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370911234" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036571234,\"versions\":[{\"version\":25,\"nodeId\":0}]}" --header "Content-Type: text" --data "Hi there" http://localhost:8085/test/a2V5
HTTP/1.1 201 Created
Content-Length: 0
4.getall(key1, key2) #get all values
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5MQ==,a2V5
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5MQ==,a2V5
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
@@ -210,7 +210,7 @@ Hi there
5.getversion(key2) # should return single version
-curl -i -X HEAD --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5
+curl -i --header "X-VOLD-Get-Version:true" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5
HTTP/1.1 200 OK
Content-Transfer-Encoding: binary
Content-Length: 0
@@ -221,14 +221,14 @@ X-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeI
6.put(key1, value2, version2) #conflicting versions
-curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":36,\"nodeId\":1}]}" --header "Content-Type: text" --data "How are you today" http://localhost:8081/test/a2V5MQ==
+curl -i -X POST --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Routing-Type-Code: 2" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":36,\"nodeId\":1}]}" --header "Content-Type: text" --data "How are you today" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 201 Created
Content-Length: 0
7. getversion(key1) #should return multiple versions
-curl -i -X HEAD --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5MQ==
+curl -i --header "X-VOLD-Get-Version:true" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 200 OK
Content-Transfer-Encoding: binary
Content-Length: 0
@@ -238,7 +238,7 @@ X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeI
8. getall(key1,key2) #should return two versions for key1 and 1 versioned value for key2
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5MQ==,a2V5
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5MQ==,a2V5
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
@@ -276,13 +276,13 @@ Hi there
9. delete(key1, version 1)
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 204 No Content
Content-Length: 0
10. get(key1) #should return only one version now
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5MQ==
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
@@ -297,12 +297,12 @@ How are you today
------=_Part_7_1664751480.1372134733915--
11.delete(key1, version3)
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":36,\"nodeId\":1}]}" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":36,\"nodeId\":1}]}" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 204 No Content
Content-Length: 0
12. get(key1) #should return nothing
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5MQ==
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=UTF-8
@@ -312,7 +312,7 @@ Failure: 404 Not Found. Either key does not exist or key is null
13. delete(key1, version1) # should error saying non exisitng key
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" http://localhost:8081/test/a2V5MQ==
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036572186,\"versions\":[{\"version\":34,\"nodeId\":0}]}" http://localhost:8085/test/a2V5MQ==
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=UTF-8
@@ -321,7 +321,7 @@ Failure: 404 Not Found. Non Existing key/version. Nothing to delete
14. getall(key1,key2) #should see values only for key2
-curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5MQ==,a2V5
+curl -i --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5MQ==,a2V5
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
@@ -344,13 +344,13 @@ Hi there
15. delete(key2, version2)
-curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036571234,\"versions\":[{\"version\":25,\"nodeId\":0}]}" http://localhost:8081/test/a2V5
+curl -i -X DELETE --header "X-VOLD-Request-Timeout-ms: 1000000" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Routing-Type-Code: 1" --header "X-VOLD-Vector-Clock:{\"timestamp\":1363036571234,\"versions\":[{\"version\":25,\"nodeId\":0}]}" http://localhost:8085/test/a2V5
HTTP/1.1 204 No Content
Content-Length: 0
16. getversion(key2) #should not see any version. Non existing key error
-curl -i -X HEAD --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8081/test/a2V5
+curl -i --header "X-VOLD-Get-Version:true" --header "X-VOLD-Request-Origin-Time-ms:1370912076" --header "X-VOLD-Request-Timeout-ms: 10000" --header "X-VOLD-Routing-Type-Code: 2" http://localhost:8085/test/a2V5
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=UTF-8