<NME> RestSpecAndBasicUnitTest
<BEF> REST SPEC FRAMEWORK TESTS
-------------------------

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== 
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==
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== 
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== 
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==
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== 
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== 
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/
Failure: 400 Bad Request. Error: No key specified !


missing store name ?
// TODO should be tested after implementing store. For now temporarily using inMemoryStore


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== 
Failure: 400 Bad Request. Cannot have Inconsitence resolver header


get tests
---------

get all tests
-------------

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==
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==
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==
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==
Failure: 400 Bad Request. Missing Content-Type header


invalid content type
//TODO need to validate content types in the server side


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==
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: (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==
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==
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==
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==
Failure: 400 Bad Request. Invalid Vector Clock


get metadata tests
------------------




BASIC FUNCTIONALITY TESTS
-------------------------
1. put(Key1, value1, version1)
2. get(key1)
3. put(key2, value2, version2) 
4. getall(key1, key2)  #get all values 
5. getversion(key2) # should return single version
6. put(key1, value2, version3) #conflicting versions
7. getversion(key1)   #should return multiple versions
8. getall(key1,key2)  #should return two versions for key1 and 1 versioned value for key2
9. delete(key1, version1) 
10. get(key1)  #should return one version now
11. delete(key1, version3)
12. get(key1) # should return nothing
13. delete(key1, version1) # should error saying non exisitng key
14. getall(key1,key2)  #should see values only for key2
15. delete(key2, version2)
16. getversion(key2)  #should not see any version. non existing key error


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==
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==
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
Content-Location: /test/a2V5MQ==
Content-Length: 212

------=_Part_0_133441329.1372134443257
X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeId":0}]}
Content-Length: 17

How are you today
------=_Part_0_133441329.1372134443257--



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
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
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
Content-Length: 653

------=_Part_1_1455093129.1372134497168
Content-Location: /test/a2V5MQ==
Content-Length: -1

------=_Part_2_206447067.1372134497168
X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeId":0}]}
Content-Length: 17

How are you today
------=_Part_2_206447067.1372134497168--

------=_Part_1_1455093129.1372134497168
Content-Location: /test/a2V5
Content-Length: -1

------=_Part_3_1569765164.1372134497169
X-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeId":0}]}
Content-Length: 8

Hi there
------=_Part_3_1569765164.1372134497169--

------=_Part_1_1455093129.1372134497168--




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
HTTP/1.1 200 OK
Content-Transfer-Encoding: binary
Content-Length: 0
Content-Location: /test/a2V5
X-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeId":0}]}




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==
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==
HTTP/1.1 200 OK
Content-Transfer-Encoding: binary
Content-Length: 0
Content-Location: /test/a2V5MQ==
X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeId":0}]}, {"timestamp":1363036572186,"versions":[{"version":36,"nodeId":1}]}



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
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
Content-Length: 823

------=_Part_4_745296726.1372134642827
Content-Location: /test/a2V5MQ==
Content-Length: -1

------=_Part_5_2077444578.1372134642827
X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeId":0}]}
Content-Length: 17

How are you today
------=_Part_5_2077444578.1372134642827
X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":36,"nodeId":1}]}
Content-Length: 17

How are you today
------=_Part_5_2077444578.1372134642827--

------=_Part_4_745296726.1372134642827
Content-Location: /test/a2V5
Content-Length: -1

------=_Part_6_1821889520.1372134642828
X-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeId":0}]}
Content-Length: 8

Hi there
------=_Part_6_1821889520.1372134642828--

------=_Part_4_745296726.1372134642827--



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==
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==
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
Content-Location: /test/a2V5MQ==
Content-Length: 214

------=_Part_7_1664751480.1372134733915
X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":36,"nodeId":1}]}
Content-Length: 17

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==
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==
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=UTF-8

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==
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=UTF-8

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
HTTP/1.1 200 OK
Content-Type: multipart/binary
Content-Transfer-Encoding: binary
Content-Length: 344

------=_Part_9_1098710886.1372135176159
Content-Location: /test/a2V5
Content-Length: -1

------=_Part_10_1969464096.1372135176159
X-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeId":0}]}
Content-Length: 8

Hi there
------=_Part_10_1969464096.1372135176159--

------=_Part_9_1098710886.1372135176159--




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
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
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=UTF-8

Failure: 404 Not Found. Either key does not exist or key is null 



<MSG> - Added config parameter for enabling Rest Service. Rest Service will run
on port 8085 but will not be enabled by default. Set rest.enable=true to
bring up RestService.
- Bringing back HttpService on it port 8081.
- Changing the Rest Service unit tests to use port 8085

<DFF> @@ -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
 

{'commit': 'diff --git a/config/single_node_rest_server/config/server.properties b/config/single_node_rest_server/config/server.properties\nindex 396ff5944..fb0edc8fb 100644\n--- a/config/single_node_rest_server/config/server.properties\n+++ b/config/single_node_rest_server/config/server.properties\n@@ -7,6 +7,7 @@ max.threads=100\n \n http.enable=true\n socket.enable=true\n+rest.enable=true\n \n # BDB\n bdb.write.transactions=false\ndiff --git a/contrib/restclient/src/java/voldemort/restclient/RestServerAPITest.java b/contrib/restclient/src/java/voldemort/restclient/RestServerAPITest.java\nindex 8b8b5c8c4..a30af992e 100644\n--- a/contrib/restclient/src/java/voldemort/restclient/RestServerAPITest.java\n+++ b/contrib/restclient/src/java/voldemort/restclient/RestServerAPITest.java\n@@ -62,7 +62,7 @@ public class RestServerAPITest {\n         logger.info("********************Starting REST Server********************");\n \n         restClientConfig = new RESTClientConfig();\n-        restClientConfig.setHttpBootstrapURL("http://localhost:8081")\n+        restClientConfig.setHttpBootstrapURL("http://localhost:8085")\n                         .setTimeoutMs(1500, TimeUnit.MILLISECONDS)\n                         .setMaxR2ConnectionPoolSize(100);\n         clientFactory = new HttpClientFactory();\ndiff --git a/src/java/voldemort/server/VoldemortConfig.java b/src/java/voldemort/server/VoldemortConfig.java\nindex c3dfd5e8f..b3129ce9e 100644\n--- a/src/java/voldemort/server/VoldemortConfig.java\n+++ b/src/java/voldemort/server/VoldemortConfig.java\n@@ -36,6 +36,7 @@ import voldemort.common.service.SchedulerService;\n import voldemort.server.http.HttpService;\n import voldemort.server.niosocket.NioSocketService;\n import voldemort.server.protocol.admin.AsyncOperation;\n+import voldemort.server.rest.RestService;\n import voldemort.server.scheduler.DataCleanupJob;\n import voldemort.server.scheduler.slop.BlockingSlopPusherJob;\n import voldemort.server.scheduler.slop.StreamingSlopPusherJob;\n@@ -229,6 +230,7 @@ public class VoldemortConfig implements Serializable {\n     // Should be removed once the proxy put implementation is stable.\n     private boolean proxyPutsDuringRebalance;\n \n+    private boolean enableRestService;\n     private int numRestServiceNettyBossThreads;\n     private int numRestServiceNettyWorkerThreads;\n     private int numRestServiceStorageThreads;\n@@ -507,6 +509,7 @@ public class VoldemortConfig implements Serializable {\n         this.enableNetworkClassLoader = props.getBoolean("enable.network.classloader", false);\n \n         // TODO: REST-Server decide on the numbers\n+        this.enableRestService = props.getBoolean("rest.enable", false);\n         this.numRestServiceNettyBossThreads = props.getInt("num.rest.service.netty.boss.threads", 1);\n         this.numRestServiceNettyWorkerThreads = props.getInt("num.rest.service.netty.worker.threads",\n                                                              10);\n@@ -2812,6 +2815,22 @@ public class VoldemortConfig implements Serializable {\n         this.gossipIntervalMs = gossipIntervalMs;\n     }\n \n+    public boolean isRestServiceEnabled() {\n+        return enableRestService;\n+    }\n+\n+    /**\n+     * Whether or not the {@link RestService} is enabled\n+     * <ul>\n+     * <li>Property :"rest.enable"</li>\n+     * <li>Default :false</li>\n+     * </ul>\n+     * \n+     */\n+    public void setEnableRestService(boolean enableRestService) {\n+        this.enableRestService = enableRestService;\n+    }\n+\n     public int getNumRestServiceNettyBossThreads() {\n         return numRestServiceNettyBossThreads;\n     }\n@@ -2872,4 +2891,5 @@ public class VoldemortConfig implements Serializable {\n     public void setRestServiceStorageThreadPoolQueueSize(int restServiceStorageThreadPoolQueueSize) {\n         this.restServiceStorageThreadPoolQueueSize = restServiceStorageThreadPoolQueueSize;\n     }\n+\n }\ndiff --git a/src/java/voldemort/server/VoldemortServer.java b/src/java/voldemort/server/VoldemortServer.java\nindex 9c4260410..0e324d073 100644\n--- a/src/java/voldemort/server/VoldemortServer.java\n+++ b/src/java/voldemort/server/VoldemortServer.java\n@@ -29,6 +29,7 @@ import org.apache.log4j.Logger;\n \n import voldemort.VoldemortException;\n import voldemort.annotations.jmx.JmxOperation;\n+import voldemort.client.protocol.RequestFormatType;\n import voldemort.client.protocol.admin.AdminClient;\n import voldemort.cluster.Cluster;\n import voldemort.cluster.Node;\n@@ -37,6 +38,7 @@ import voldemort.common.service.SchedulerService;\n import voldemort.common.service.ServiceType;\n import voldemort.common.service.VoldemortService;\n import voldemort.server.gossip.GossipService;\n+import voldemort.server.http.HttpService;\n import voldemort.server.jmx.JmxService;\n import voldemort.server.niosocket.NioSocketService;\n import voldemort.server.protocol.RequestHandlerFactory;\n@@ -190,18 +192,23 @@ public class VoldemortServer extends AbstractService {\n \n         if(voldemortConfig.isHttpServerEnabled()) {\n             /*\n-             * TODO REST-Server 1. Need to decide on replacing HttpService 2.\n-             * Need to decide on the number of threads. This needs to be\n-             * configurable\n+             * TODO REST-Server 1. Need to decide on replacing HttpService\n              */\n+            services.add(new HttpService(this,\n+                                         storageService,\n+                                         storeRepository,\n+                                         RequestFormatType.VOLDEMORT_V1,\n+                                         voldemortConfig.getMaxThreads(),\n+                                         identityNode.getHttpPort()));\n+\n+        }\n+        if(voldemortConfig.isRestServiceEnabled()) {\n             /*\n-             * services.add(new HttpService(this, storageService,\n-             * storeRepository, RequestFormatType.VOLDEMORT_V1,\n-             * voldemortConfig.getMaxThreads(), identityNode.getHttpPort()));\n+             * TODO REST-Server 1. Need to decide on the number of threads. This\n+             * needs to be configurable 2. Need to configure the Rest Service\n+             * port instead of hard coding\n              */\n-            services.add(new RestService(voldemortConfig,\n-                                         identityNode.getHttpPort(),\n-                                         storeRepository));\n+            services.add(new RestService(voldemortConfig, 8085, storeRepository));\n         }\n         if(voldemortConfig.isSocketServerEnabled()) {\n             RequestHandlerFactory socketRequestHandlerFactory = new SocketRequestHandlerFactory(storageService,\ndiff --git a/test/unit/voldemort/server/rest/RestServerProtocolTests.java b/test/unit/voldemort/server/rest/RestServerProtocolTests.java\nindex 2e6028b7a..f7bf8a1cb 100644\n--- a/test/unit/voldemort/server/rest/RestServerProtocolTests.java\n+++ b/test/unit/voldemort/server/rest/RestServerProtocolTests.java\n@@ -44,7 +44,7 @@ public class RestServerProtocolTests {\n     @BeforeClass\n     public static void oneTimeSetUp() {\n         storeNameStr = "test";\n-        urlStr = "http://localhost:8081/";\n+        urlStr = "http://localhost:8085/";\n         config = VoldemortConfig.loadFromVoldemortHome("config/single_node_rest_server/");\n         key1 = "The longest key ";\n         vectorClock = new VectorClock();\ndiff --git a/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest b/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest\nindex edd5f2631..caa68c7e0 100644\n--- a/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest\n+++ b/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest\n@@ -6,42 +6,42 @@ common tests:\n \n \n missing routing type\n-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== \n+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== \n Failure: 400 Bad Request. Missing routing type parameter.\n \n \n invalid routing type\n-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==\n+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==\n Failure: 400 Bad Request. Incorrect routing type code: 5. Details: Invalid RequestRoutingType code passed 5\n \n \n non number routing type\n-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== \n+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== \n Failure: 400 Bad Request. Incorrect routing type parameter. Cannot parse this to long: asdf. Details: For input string: "asdf"\n \n \n missing timeout\n-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== \n+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== \n Failure: 400 Bad Request. Missing timeout parameter.\n \n \n non number timeout\n-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==\n+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==\n Failure: 400 Bad Request. Incorrect timeout parameter. Cannot parse this to long: 10000sdfga. Details: For input string: "10000sdfga"\n \n \n missing timestamp\n-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== \n+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== \n Failure: 400 Bad Request. Missing origin time parameter.\n \n \n non number timestamp\n-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== \n+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== \n Failure: 400 Bad Request. Incorrect origin time parameter. Cannot parse this to long: 137dfg0912076. Details: For input string: "137dfg0912076"\n \n \n missing key\n-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/\n+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/\n Failure: 400 Bad Request. Error: No key specified !\n \n \n@@ -50,7 +50,7 @@ missing store name ?\n \n \n include inconsistency resolverheader\n-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== \n+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== \n Failure: 400 Bad Request. Cannot have Inconsitence resolver header\n \n \n@@ -66,22 +66,22 @@ get version tests\n put tests\n ---------\n missing vector clock\n-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==\n+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==\n Failure: 400 Bad Request. Missing Vector Clock\n \n \n invalid format\n-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==\n+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==\n Failure: 400 Bad Request. Invalid Vector Clock\n \n \n missing content type\n-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==\n+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==\n This command will not error out since default values for CONTENT_TYPE will be assumed if the header is not explicitly specified\n \n \n empty content type\n-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==\n+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==\n Failure: 400 Bad Request. Missing Content-Type header\n \n \n@@ -90,33 +90,33 @@ invalid content type\n \n \n missing content length\n-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==\n+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==\n This command will not error out since CONTENT_LENGTH will be sent automatically by the http client if the header is not explicitly specified\n \n \n non number content length\n-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==\n+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==\n curl: (52) Empty reply from server\n \n \n empty content length\n-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==\n+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==\n Failure: 400 Bad Request. Missing Content-Length header\n \n \n delete tests\n ------------\n missing vector clock\n-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==\n+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==\n Failure: 400 Bad Request. Missing Vector Clock\n \n \n-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==\n+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==\n Failure: 400 Bad Request. Missing Vector Clock\n \n \n invalid format of vector clock\n-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==\n+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==\n Failure: 400 Bad Request. Invalid Vector Clock\n \n \n@@ -147,13 +147,13 @@ BASIC FUNCTIONALITY TESTS\n \n \n 1.put(Key1, value1, version1)\n-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==\n+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==\n HTTP/1.1 201 Created\n Content-Length: 0\n \n \n 2.get(key1)\n-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==\n+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==\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -170,13 +170,13 @@ How are you today\n \n \n 3.put(key2, value2, version2)\n-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\n+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\n HTTP/1.1 201 Created\n Content-Length: 0\n \n \n 4.getall(key1, key2)  #get all values\n-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\n+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\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -210,7 +210,7 @@ Hi there\n \n \n 5.getversion(key2) # should return single version\n-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\n+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\n HTTP/1.1 200 OK\n Content-Transfer-Encoding: binary\n Content-Length: 0\n@@ -221,14 +221,14 @@ X-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeI\n \n \n 6.put(key1, value2, version2) #conflicting versions\n-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==\n+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==\n HTTP/1.1 201 Created\n Content-Length: 0\n \n \n \n 7. getversion(key1)   #should return multiple versions\n-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==\n+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==\n HTTP/1.1 200 OK\n Content-Transfer-Encoding: binary\n Content-Length: 0\n@@ -238,7 +238,7 @@ X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeI\n \n \n 8. getall(key1,key2)  #should return two versions for key1 and 1 versioned value for key2\n-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\n+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\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -276,13 +276,13 @@ Hi there\n \n \n 9. delete(key1, version 1)\n-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==\n+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==\n HTTP/1.1 204 No Content\n Content-Length: 0\n \n \n 10. get(key1)  #should return only one version now\n-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==\n+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==\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -297,12 +297,12 @@ How are you today\n ------=_Part_7_1664751480.1372134733915--\n \n 11.delete(key1, version3)\n-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==\n+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==\n HTTP/1.1 204 No Content\n Content-Length: 0\n \n 12. get(key1)  #should return nothing\n-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==\n+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==\n HTTP/1.1 404 Not Found\n Content-Type: text/plain; charset=UTF-8\n \n@@ -312,7 +312,7 @@ Failure: 404 Not Found. Either key does not exist or key is null\n \n \n 13. delete(key1, version1) # should error saying non exisitng key\n-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==\n+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==\n HTTP/1.1 404 Not Found\n Content-Type: text/plain; charset=UTF-8\n \n@@ -321,7 +321,7 @@ Failure: 404 Not Found. Non Existing key/version. Nothing to delete\n \n \n 14. getall(key1,key2)  #should see values only for key2\n-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\n+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\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -344,13 +344,13 @@ Hi there\n \n \n 15. delete(key2, version2)\n-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\n+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\n HTTP/1.1 204 No Content\n Content-Length: 0\n \n \n 16. getversion(key2)  #should not see any version. Non existing key error\n-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\n+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\n HTTP/1.1 404 Not Found\n Content-Type: text/plain; charset=UTF-8\n \n', 'commit_subject': '- Added config parameter for enabling Rest Service. Rest Service will run on port 8085 but will not be enabled by default. Set rest.enable=true to bring up RestService. - Bringing back HttpService on it port 8081. - Changing the Rest Service unit tests to use port 8085', 'repo_name': 'voldemort/voldemort', 'committer': {'name': 'Bhavani Sudha Saktheeswaran', 'email': '690aa4f9834572b6e55ffa2a53d0622054a8c2ea@gmail.com', 'time_sec': '1374105606', 'tz_offset': '-420', 'date': {'seconds': '1374105606'}}, 'commit_tree': 'd2cd8d4c0b1679e8796666b8eb9047ce793b5823', 'commit_message': '- Added config parameter for enabling Rest Service. Rest Service will run\non port 8085 but will not be enabled by default. Set rest.enable=true to\nbring up RestService.\n- Bringing back HttpService on it port 8081.\n- Changing the Rest Service unit tests to use port 8085\n', 'language_name': 'C++', 'license': 'apache-2.0', 'hunks': '@@ -6,42 +6,42 @@ common tests:\n \n \n missing routing type\n-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== \n+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== \n Failure: 400 Bad Request. Missing routing type parameter.\n \n \n invalid routing type\n-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==\n+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==\n Failure: 400 Bad Request. Incorrect routing type code: 5. Details: Invalid RequestRoutingType code passed 5\n \n \n non number routing type\n-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== \n+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== \n Failure: 400 Bad Request. Incorrect routing type parameter. Cannot parse this to long: asdf. Details: For input string: "asdf"\n \n \n missing timeout\n-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== \n+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== \n Failure: 400 Bad Request. Missing timeout parameter.\n \n \n non number timeout\n-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==\n+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==\n Failure: 400 Bad Request. Incorrect timeout parameter. Cannot parse this to long: 10000sdfga. Details: For input string: "10000sdfga"\n \n \n missing timestamp\n-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== \n+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== \n Failure: 400 Bad Request. Missing origin time parameter.\n \n \n non number timestamp\n-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== \n+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== \n Failure: 400 Bad Request. Incorrect origin time parameter. Cannot parse this to long: 137dfg0912076. Details: For input string: "137dfg0912076"\n \n \n missing key\n-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/\n+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/\n Failure: 400 Bad Request. Error: No key specified !\n \n \n@@ -50,7 +50,7 @@ missing store name ?\n \n \n include inconsistency resolverheader\n-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== \n+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== \n Failure: 400 Bad Request. Cannot have Inconsitence resolver header\n \n \n@@ -66,22 +66,22 @@ get version tests\n put tests\n ---------\n missing vector clock\n-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==\n+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==\n Failure: 400 Bad Request. Missing Vector Clock\n \n \n invalid format\n-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==\n+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==\n Failure: 400 Bad Request. Invalid Vector Clock\n \n \n missing content type\n-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==\n+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==\n This command will not error out since default values for CONTENT_TYPE will be assumed if the header is not explicitly specified\n \n \n empty content type\n-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==\n+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==\n Failure: 400 Bad Request. Missing Content-Type header\n \n \n@@ -90,33 +90,33 @@ invalid content type\n \n \n missing content length\n-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==\n+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==\n This command will not error out since CONTENT_LENGTH will be sent automatically by the http client if the header is not explicitly specified\n \n \n non number content length\n-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==\n+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==\n curl: (52) Empty reply from server\n \n \n empty content length\n-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==\n+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==\n Failure: 400 Bad Request. Missing Content-Length header\n \n \n delete tests\n ------------\n missing vector clock\n-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==\n+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==\n Failure: 400 Bad Request. Missing Vector Clock\n \n \n-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==\n+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==\n Failure: 400 Bad Request. Missing Vector Clock\n \n \n invalid format of vector clock\n-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==\n+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==\n Failure: 400 Bad Request. Invalid Vector Clock\n \n \n@@ -147,13 +147,13 @@ BASIC FUNCTIONALITY TESTS\n \n \n 1.put(Key1, value1, version1)\n-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==\n+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==\n HTTP/1.1 201 Created\n Content-Length: 0\n \n \n 2.get(key1)\n-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==\n+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==\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -170,13 +170,13 @@ How are you today\n \n \n 3.put(key2, value2, version2)\n-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\n+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\n HTTP/1.1 201 Created\n Content-Length: 0\n \n \n 4.getall(key1, key2)  #get all values\n-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\n+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\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -210,7 +210,7 @@ Hi there\n \n \n 5.getversion(key2) # should return single version\n-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\n+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\n HTTP/1.1 200 OK\n Content-Transfer-Encoding: binary\n Content-Length: 0\n@@ -221,14 +221,14 @@ X-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeI\n \n \n 6.put(key1, value2, version2) #conflicting versions\n-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==\n+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==\n HTTP/1.1 201 Created\n Content-Length: 0\n \n \n \n 7. getversion(key1)   #should return multiple versions\n-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==\n+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==\n HTTP/1.1 200 OK\n Content-Transfer-Encoding: binary\n Content-Length: 0\n@@ -238,7 +238,7 @@ X-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeI\n \n \n 8. getall(key1,key2)  #should return two versions for key1 and 1 versioned value for key2\n-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\n+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\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -276,13 +276,13 @@ Hi there\n \n \n 9. delete(key1, version 1)\n-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==\n+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==\n HTTP/1.1 204 No Content\n Content-Length: 0\n \n \n 10. get(key1)  #should return only one version now\n-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==\n+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==\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -297,12 +297,12 @@ How are you today\n ------=_Part_7_1664751480.1372134733915--\n \n 11.delete(key1, version3)\n-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==\n+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==\n HTTP/1.1 204 No Content\n Content-Length: 0\n \n 12. get(key1)  #should return nothing\n-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==\n+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==\n HTTP/1.1 404 Not Found\n Content-Type: text/plain; charset=UTF-8\n \n@@ -312,7 +312,7 @@ Failure: 404 Not Found. Either key does not exist or key is null\n \n \n 13. delete(key1, version1) # should error saying non exisitng key\n-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==\n+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==\n HTTP/1.1 404 Not Found\n Content-Type: text/plain; charset=UTF-8\n \n@@ -321,7 +321,7 @@ Failure: 404 Not Found. Non Existing key/version. Nothing to delete\n \n \n 14. getall(key1,key2)  #should see values only for key2\n-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\n+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\n HTTP/1.1 200 OK\n Content-Type: multipart/binary\n Content-Transfer-Encoding: binary\n@@ -344,13 +344,13 @@ Hi there\n \n \n 15. delete(key2, version2)\n-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\n+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\n HTTP/1.1 204 No Content\n Content-Length: 0\n \n \n 16. getversion(key2)  #should not see any version. Non existing key error\n-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\n+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\n HTTP/1.1 404 Not Found\n Content-Type: text/plain; charset=UTF-8\n \n', 'addition_count': 35, 'deletion_count': 35, 'src_file': 'a/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest', 'tgt_file': 'b/test/unit/voldemort/server/rest/RestSpecAndBasicUnitTest', 'file_extension': '', 'before_file': 'REST SPEC FRAMEWORK TESTS\n-------------------------\n\ncommon tests:\n------------\n\n\nmissing routing type\ncurl -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== \nFailure: 400 Bad Request. Missing routing type parameter.\n\n\ninvalid routing type\ncurl -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==\nFailure: 400 Bad Request. Incorrect routing type code: 5. Details: Invalid RequestRoutingType code passed 5\n\n\nnon number routing type\ncurl -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== \nFailure: 400 Bad Request. Incorrect routing type parameter. Cannot parse this to long: asdf. Details: For input string: "asdf"\n\n\nmissing timeout\ncurl -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== \nFailure: 400 Bad Request. Missing timeout parameter.\n\n\nnon number timeout\ncurl -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==\nFailure: 400 Bad Request. Incorrect timeout parameter. Cannot parse this to long: 10000sdfga. Details: For input string: "10000sdfga"\n\n\nmissing timestamp\ncurl -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== \nFailure: 400 Bad Request. Missing origin time parameter.\n\n\nnon number timestamp\ncurl -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== \nFailure: 400 Bad Request. Incorrect origin time parameter. Cannot parse this to long: 137dfg0912076. Details: For input string: "137dfg0912076"\n\n\nmissing key\ncurl -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/\nFailure: 400 Bad Request. Error: No key specified !\n\n\nmissing store name ?\n// TODO should be tested after implementing store. For now temporarily using inMemoryStore\n\n\ninclude inconsistency resolverheader\ncurl -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== \nFailure: 400 Bad Request. Cannot have Inconsitence resolver header\n\n\nget tests\n---------\n\nget all tests\n-------------\n\nget version tests\n-----------------\n\nput tests\n---------\nmissing vector clock\ncurl -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==\nFailure: 400 Bad Request. Missing Vector Clock\n\n\ninvalid format\ncurl -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==\nFailure: 400 Bad Request. Invalid Vector Clock\n\n\nmissing content type\ncurl -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==\nThis command will not error out since default values for CONTENT_TYPE will be assumed if the header is not explicitly specified\n\n\nempty content type\ncurl -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==\nFailure: 400 Bad Request. Missing Content-Type header\n\n\ninvalid content type\n//TODO need to validate content types in the server side\n\n\nmissing content length\ncurl -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==\nThis command will not error out since CONTENT_LENGTH will be sent automatically by the http client if the header is not explicitly specified\n\n\nnon number content length\ncurl -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==\ncurl: (52) Empty reply from server\n\n\nempty content length\ncurl -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==\nFailure: 400 Bad Request. Missing Content-Length header\n\n\ndelete tests\n------------\nmissing vector clock\ncurl -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==\nFailure: 400 Bad Request. Missing Vector Clock\n\n\ncurl -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==\nFailure: 400 Bad Request. Missing Vector Clock\n\n\ninvalid format of vector clock\ncurl -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==\nFailure: 400 Bad Request. Invalid Vector Clock\n\n\nget metadata tests\n------------------\n\n\n\n\nBASIC FUNCTIONALITY TESTS\n-------------------------\n1. put(Key1, value1, version1)\n2. get(key1)\n3. put(key2, value2, version2) \n4. getall(key1, key2)  #get all values \n5. getversion(key2) # should return single version\n6. put(key1, value2, version3) #conflicting versions\n7. getversion(key1)   #should return multiple versions\n8. getall(key1,key2)  #should return two versions for key1 and 1 versioned value for key2\n9. delete(key1, version1) \n10. get(key1)  #should return one version now\n11. delete(key1, version3)\n12. get(key1) # should return nothing\n13. delete(key1, version1) # should error saying non exisitng key\n14. getall(key1,key2)  #should see values only for key2\n15. delete(key2, version2)\n16. getversion(key2)  #should not see any version. non existing key error\n\n\n1.put(Key1, value1, version1)\ncurl -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==\nHTTP/1.1 201 Created\nContent-Length: 0\n\n\n2.get(key1)\ncurl -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==\nHTTP/1.1 200 OK\nContent-Type: multipart/binary\nContent-Transfer-Encoding: binary\nContent-Location: /test/a2V5MQ==\nContent-Length: 212\n\n------=_Part_0_133441329.1372134443257\nX-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeId":0}]}\nContent-Length: 17\n\nHow are you today\n------=_Part_0_133441329.1372134443257--\n\n\n\n3.put(key2, value2, version2)\ncurl -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\nHTTP/1.1 201 Created\nContent-Length: 0\n\n\n4.getall(key1, key2)  #get all values\ncurl -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\nHTTP/1.1 200 OK\nContent-Type: multipart/binary\nContent-Transfer-Encoding: binary\nContent-Length: 653\n\n------=_Part_1_1455093129.1372134497168\nContent-Location: /test/a2V5MQ==\nContent-Length: -1\n\n------=_Part_2_206447067.1372134497168\nX-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeId":0}]}\nContent-Length: 17\n\nHow are you today\n------=_Part_2_206447067.1372134497168--\n\n------=_Part_1_1455093129.1372134497168\nContent-Location: /test/a2V5\nContent-Length: -1\n\n------=_Part_3_1569765164.1372134497169\nX-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeId":0}]}\nContent-Length: 8\n\nHi there\n------=_Part_3_1569765164.1372134497169--\n\n------=_Part_1_1455093129.1372134497168--\n\n\n\n\n5.getversion(key2) # should return single version\ncurl -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\nHTTP/1.1 200 OK\nContent-Transfer-Encoding: binary\nContent-Length: 0\nContent-Location: /test/a2V5\nX-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeId":0}]}\n\n\n\n\n6.put(key1, value2, version2) #conflicting versions\ncurl -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==\nHTTP/1.1 201 Created\nContent-Length: 0\n\n\n\n7. getversion(key1)   #should return multiple versions\ncurl -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==\nHTTP/1.1 200 OK\nContent-Transfer-Encoding: binary\nContent-Length: 0\nContent-Location: /test/a2V5MQ==\nX-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeId":0}]}, {"timestamp":1363036572186,"versions":[{"version":36,"nodeId":1}]}\n\n\n\n8. getall(key1,key2)  #should return two versions for key1 and 1 versioned value for key2\ncurl -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\nHTTP/1.1 200 OK\nContent-Type: multipart/binary\nContent-Transfer-Encoding: binary\nContent-Length: 823\n\n------=_Part_4_745296726.1372134642827\nContent-Location: /test/a2V5MQ==\nContent-Length: -1\n\n------=_Part_5_2077444578.1372134642827\nX-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":34,"nodeId":0}]}\nContent-Length: 17\n\nHow are you today\n------=_Part_5_2077444578.1372134642827\nX-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":36,"nodeId":1}]}\nContent-Length: 17\n\nHow are you today\n------=_Part_5_2077444578.1372134642827--\n\n------=_Part_4_745296726.1372134642827\nContent-Location: /test/a2V5\nContent-Length: -1\n\n------=_Part_6_1821889520.1372134642828\nX-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeId":0}]}\nContent-Length: 8\n\nHi there\n------=_Part_6_1821889520.1372134642828--\n\n------=_Part_4_745296726.1372134642827--\n\n\n\n9. delete(key1, version 1)\ncurl -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==\nHTTP/1.1 204 No Content\nContent-Length: 0\n\n\n10. get(key1)  #should return only one version now\ncurl -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==\nHTTP/1.1 200 OK\nContent-Type: multipart/binary\nContent-Transfer-Encoding: binary\nContent-Location: /test/a2V5MQ==\nContent-Length: 214\n\n------=_Part_7_1664751480.1372134733915\nX-VOLD-Vector-Clock: {"timestamp":1363036572186,"versions":[{"version":36,"nodeId":1}]}\nContent-Length: 17\n\nHow are you today\n------=_Part_7_1664751480.1372134733915--\n\n11.delete(key1, version3)\ncurl -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==\nHTTP/1.1 204 No Content\nContent-Length: 0\n\n12. get(key1)  #should return nothing\ncurl -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==\nHTTP/1.1 404 Not Found\nContent-Type: text/plain; charset=UTF-8\n\nFailure: 404 Not Found. Either key does not exist or key is null\n\n\n\n\n13. delete(key1, version1) # should error saying non exisitng key\ncurl -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==\nHTTP/1.1 404 Not Found\nContent-Type: text/plain; charset=UTF-8\n\nFailure: 404 Not Found. Non Existing key/version. Nothing to delete\n\n\n\n14. getall(key1,key2)  #should see values only for key2\ncurl -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\nHTTP/1.1 200 OK\nContent-Type: multipart/binary\nContent-Transfer-Encoding: binary\nContent-Length: 344\n\n------=_Part_9_1098710886.1372135176159\nContent-Location: /test/a2V5\nContent-Length: -1\n\n------=_Part_10_1969464096.1372135176159\nX-VOLD-Vector-Clock: {"timestamp":1363036571234,"versions":[{"version":25,"nodeId":0}]}\nContent-Length: 8\n\nHi there\n------=_Part_10_1969464096.1372135176159--\n\n------=_Part_9_1098710886.1372135176159--\n\n\n\n\n15. delete(key2, version2)\ncurl -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\nHTTP/1.1 204 No Content\nContent-Length: 0\n\n\n16. getversion(key2)  #should not see any version. Non existing key error\ncurl -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\nHTTP/1.1 404 Not Found\nContent-Type: text/plain; charset=UTF-8\n\nFailure: 404 Not Found. Either key does not exist or key is null \n\n\n', 'message': '- Added config parameter for enabling Rest Service. Rest Service will run\non port 8085 but will not be enabled by default. Set rest.enable=true to\nbring up RestService.\n- Bringing back HttpService on it port 8081.\n- Changing the Rest Service unit tests to use port 8085\n', 'author_name': 'Bhavani Sudha Saktheeswaran', 'lang': 'RestSpecAndBasicUnitTest'}