token = NULL,
http = NULL,
httpParser = NULL,
+ numRetries = NULL,
- initialize = function(token, hostName, webDavHostName = NULL, http, httpParser)
+ initialize = function(token, hostName,
+ http, httpParser,
+ numRetries = 0,
+ webDavHostName = NULL)
{
version <- "v1"
"/arvados/", version, "/")
self$http <- http
self$httpParser <- httpParser
+ self$numRetries <- numRetries
private$rawHostName <- hostName
private$webDavHostName <- webDavHostName
},
+ setNumConnRetries = function(newNumOfRetries)
+ {
+ self$numRetries <- newNumOfRetries
+ },
+
getWebDavHostName = function()
{
if(is.null(private$webDavHostName))
headers <- list(Authorization = paste("OAuth2", self$token))
- serverResponse <- self$http$execute("GET", discoveryDocumentURL, headers)
+ serverResponse <- self$http$execute("GET", discoveryDocumentURL, headers,
+ retryTimes = self$numRetries)
discoveryDocument <- self$httpParser$parseJSONResponse(serverResponse)
private$webDavHostName <- discoveryDocument$keepWebServiceUrl
resourceURL <- paste0(self$hostName, resource, "/", uuid)
headers <- list(Authorization = paste("OAuth2", self$token))
- serverResponse <- self$http$execute("GET", resourceURL, headers)
+ serverResponse <- self$http$execute("GET", resourceURL, headers,
+ retryTimes = self$numRetries)
resource <- self$httpParser$parseJSONResponse(serverResponse)
body <- NULL
serverResponse <- self$http$execute("GET", resourceURL, headers, body,
- filters, limit, offset)
+ filters, limit, offset,
+ self$numRetries)
resources <- self$httpParser$parseJSONResponse(serverResponse)
items <- c()
while(length(items) < itemsAvailable)
{
- serverResponse <- self$http$execute(verb = "GET",
- url = resourceURL,
- headers = headers,
- body = NULL,
- query = filters,
- limit = NULL,
- offset = offset)
+ serverResponse <- self$http$execute(verb = "GET",
+ url = resourceURL,
+ headers = headers,
+ body = NULL,
+ query = filters,
+ limit = NULL,
+ offset = offset,
+ retryTimes = self$numRetries)
parsedResponse <- self$httpParser$parseJSONResponse(serverResponse)
headers <- list("Authorization" = paste("OAuth2", self$token),
"Content-Type" = "application/json")
- serverResponse <- self$http$execute("DELETE", collectionURL, headers)
+ serverResponse <- self$http$execute("DELETE", collectionURL, headers,
+ retryTimes = self$numRetries)
removedResource <- self$httpParser$parseJSONResponse(serverResponse)
newContent <- jsonlite::toJSON(newContent, auto_unbox = T)
- serverResponse <- self$http$execute("PUT", resourceURL, headers, newContent)
+ serverResponse <- self$http$execute("PUT", resourceURL, headers, newContent,
+ retryTimes = self$numRetries)
updatedResource <- self$httpParser$parseJSONResponse(serverResponse)
content <- jsonlite::toJSON(content, auto_unbox = T)
- serverResponse <- self$http$execute("POST", resourceURL, headers, content)
+ serverResponse <- self$http$execute("POST", resourceURL, headers, content,
+ retryTimes = self$numRetries)
newResource <- self$httpParser$parseJSONResponse(serverResponse)
uuid, "/", relativePath);
headers <- list(Authorization = paste("OAuth2", self$token))
- serverResponse <- self$http$execute("DELETE", fileURL, headers)
+ serverResponse <- self$http$execute("DELETE", fileURL, headers,
+ retryTimes = self$numRetries)
if(serverResponse$status_code < 200 || serverResponse$status_code >= 300)
stop(paste("Server code:", serverResponse$status_code))
headers <- list("Authorization" = paste("OAuth2", self$token),
"Destination" = toURL)
- serverResponse <- self$http$execute("MOVE", fromURL, headers)
+ serverResponse <- self$http$execute("MOVE", fromURL, headers,
+ retryTimes = self$numRetries)
if(serverResponse$status_code < 200 || serverResponse$status_code >= 300)
stop(paste("Server code:", serverResponse$status_code))
headers <- list("Authorization" = paste("OAuth2", self$token))
- response <- self$http$execute("PROPFIND", collectionURL, headers)
+ response <- self$http$execute("PROPFIND", collectionURL, headers,
+ retryTimes = self$numRetries)
if(all(response == ""))
stop("Response is empty, request may be misconfigured")
headers <- list("Authorization" = paste("OAuth2", self$token))
- response <- self$http$execute("PROPFIND", subcollectionURL, headers)
+ response <- self$http$execute("PROPFIND", subcollectionURL, headers,
+ retryTimes = self$numRetries)
if(all(response == ""))
stop("Response is empty, request may be misconfigured")
if(!(contentType %in% self$httpParser$validContentTypes))
stop("Invalid contentType. Please use text or raw.")
- serverResponse <- self$http$execute("GET", fileURL, headers)
+ serverResponse <- self$http$execute("GET", fileURL, headers,
+ retryTimes = self$numRetries)
if(serverResponse$status_code < 200 || serverResponse$status_code >= 300)
stop(paste("Server code:", serverResponse$status_code))
"Content-Type" = contentType)
body <- content
- serverResponse <- self$http$execute("PUT", fileURL, headers, body)
+ serverResponse <- self$http$execute("PUT", fileURL, headers, body,
+ retryTimes = self$numRetries)
if(serverResponse$status_code < 200 || serverResponse$status_code >= 300)
stop(paste("Server code:", serverResponse$status_code))
"Content-Type" = contentType)
body <- NULL
- serverResponse <- self$http$execute("PUT", fileURL, headers, body)
+ serverResponse <- self$http$execute("PUT", fileURL, headers, body,
+ retryTimes = self$numRetries)
if(serverResponse$status_code < 200 || serverResponse$status_code >= 300)
stop(paste("Server code:", serverResponse$status_code))
serverResponse <- list(keepWebServiceUrl = "https://myWebDavServer.com")
httpRequest <- FakeHttpRequest$new(expectedURL, serverResponse)
- REST <- RESTService$new("token", "host", NULL,
+ REST <- RESTService$new("token", "host",
httpRequest, FakeHttpParser$new())
REST$getWebDavHostName()
serverResponse <- list(keepWebServiceUrl = "https://myWebDavServer.com")
httpRequest <- FakeHttpRequest$new(expectedURL = NULL, serverResponse)
- REST <- RESTService$new("token", "host", NULL,
+ REST <- RESTService$new("token", "host",
httpRequest, FakeHttpParser$new())
expect_that("https://myWebDavServer.com", equals(REST$getWebDavHostName()))
httpRequest <- FakeHttpRequest$new(expectedURL, serverResponse)
- REST <- RESTService$new("token", "host", "webDavHost",
- httpRequest, FakeHttpParser$new())
+ REST <- RESTService$new("token", "host",
+ httpRequest, FakeHttpParser$new(),
+ 0, "webDavHost")
REST$getResource("collections", resourceUUID)
resourceUUID <- "aaaaa-j7d0g-ccccccccccccccc"
httpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "host", "webDavHost",
- FakeHttpRequest$new(), httpParser)
+ REST <- RESTService$new("token", "host",
+ FakeHttpRequest$new(), httpParser,
+ 0, "webDavHost")
REST$getResource("collections", resourceUUID)
resourceUUID <- "aaaaa-j7d0g-ccccccccccccccc"
serverResponse <- list(errors = 404)
- REST <- RESTService$new("token", "host", "webDavHost",
+ REST <- RESTService$new("token", "host",
FakeHttpRequest$new(NULL, serverResponse),
- FakeHttpParser$new())
+ FakeHttpParser$new(),
+ 0, "webDavHost")
expect_that(REST$getResource("collections", resourceUUID), throws_error(404))
})
expectedURL <- paste0("https://host/arvados/v1/collections")
httpRequest <- FakeHttpRequest$new(expectedURL, serverResponse)
- REST <- RESTService$new("token", "host", "webDavHost",
- httpRequest, FakeHttpParser$new())
+ REST <- RESTService$new("token", "host",
+ httpRequest, FakeHttpParser$new(),
+ 0, "webDavHost")
REST$listResources("collections")
test_that("listResources parses server response", {
httpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "host", "webDavHost",
- FakeHttpRequest$new(), httpParser)
+ REST <- RESTService$new("token", "host",
+ FakeHttpRequest$new(), httpParser,
+ 0, "webDavHost")
REST$listResources("collections")
serverResponse <- list(errors = 404)
- REST <- RESTService$new("token", "host", "webDavHost",
+ REST <- RESTService$new("token", "host",
FakeHttpRequest$new(NULL, serverResponse),
- FakeHttpParser$new())
+ FakeHttpParser$new(),
+ 0, "webDavHost")
expect_that(REST$listResources("collections"), throws_error(404))
})
httpRequest <- FakeHttpRequest$new(expectedURL, serverResponse)
httpRequest$serverMaxElementsPerRequest <- 3
- REST <- RESTService$new("token", "host", "webDavHost",
- httpRequest, httpParser)
+ REST <- RESTService$new("token", "host",
+ httpRequest, httpParser,
+ 0, "webDavHost")
result <- REST$fetchAllItems(NULL, NULL)
httpRequest <- FakeHttpRequest$new(expectedURL, serverResponse)
- REST <- RESTService$new("token", "host", "webDavHost",
- httpRequest, FakeHttpParser$new())
+ REST <- RESTService$new("token", "host",
+ httpRequest, FakeHttpParser$new(),
+ 0, "webDavHost")
REST$deleteResource("collections", resourceUUID)
resourceUUID <- "aaaaa-j7d0g-ccccccccccccccc"
httpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "host", "webDavHost",
- FakeHttpRequest$new(), httpParser)
+ REST <- RESTService$new("token", "host",
+ FakeHttpRequest$new(), httpParser,
+ 0, "webDavHost")
REST$deleteResource("collections", resourceUUID)
resourceUUID <- "aaaaa-j7d0g-ccccccccccccccc"
serverResponse <- list(errors = 404)
- REST <- RESTService$new("token", "host", "webDavHost",
+ REST <- RESTService$new("token", "host",
FakeHttpRequest$new(NULL, serverResponse),
- FakeHttpParser$new())
+ FakeHttpParser$new(),
+ 0, "webDavHost")
expect_that(REST$deleteResource("collections", resourceUUID), throws_error(404))
})
httpRequest <- FakeHttpRequest$new(expectedURL, serverResponse)
- REST <- RESTService$new("token", "host", "webDavHost",
- httpRequest, FakeHttpParser$new())
+ REST <- RESTService$new("token", "host",
+ httpRequest, FakeHttpParser$new(),
+ 0, "webDavHost")
REST$updateResource("collections", resourceUUID, newResourceContent)
newResourceContent <- list(newName = "Brand new shiny name")
resourceUUID <- "aaaaa-j7d0g-ccccccccccccccc"
httpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "host", "webDavHost",
- FakeHttpRequest$new(), httpParser)
+ REST <- RESTService$new("token", "host",
+ FakeHttpRequest$new(), httpParser,
+ 0, "webDavHost")
REST$updateResource("collections", resourceUUID, newResourceContent)
resourceUUID <- "aaaaa-j7d0g-ccccccccccccccc"
serverResponse <- list(errors = 404)
newResourceContent <- list(newName = "Brand new shiny name")
- REST <- RESTService$new("token", "host", "webDavHost",
+ REST <- RESTService$new("token", "host",
FakeHttpRequest$new(NULL, serverResponse),
- FakeHttpParser$new())
+ FakeHttpParser$new(),
+ 0, "webDavHost")
expect_that(REST$updateResource("collections", resourceUUID, newResourceContent),
throws_error(404))
httpRequest <- FakeHttpRequest$new(expectedURL, serverResponse)
- REST <- RESTService$new("token", "host", "webDavHost",
- httpRequest, FakeHttpParser$new())
+ REST <- RESTService$new("token", "host",
+ httpRequest, FakeHttpParser$new(),
+ 0, "webDavHost")
REST$createResource("collections", resourceContent)
resourceContent <- list(newName = "Brand new shiny name")
resourceUUID <- "aaaaa-j7d0g-ccccccccccccccc"
httpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "host", "webDavHost",
- FakeHttpRequest$new(), httpParser)
+ REST <- RESTService$new("token", "host",
+ FakeHttpRequest$new(), httpParser,
+ 0, "webDavHost")
REST$createResource("collections", resourceContent)
resourceUUID <- "aaaaa-j7d0g-ccccccccccccccc"
serverResponse <- list(errors = 404)
resourceContent <- list(newName = "Brand new shiny name")
- REST <- RESTService$new("token", "host", "webDavHost",
+ REST <- RESTService$new("token", "host",
FakeHttpRequest$new(NULL, serverResponse),
- FakeHttpParser$new())
+ FakeHttpParser$new(),
+ 0, "webDavHost")
expect_that(REST$createResource("collections", resourceContent),
throws_error(404))
fakeHttp <- FakeHttpRequest$new(expectedURL)
fakeHttpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, fakeHttpParser)
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, fakeHttpParser,
+ 0, "https://webDavHost/")
REST$create("file", uuid)
response$status_code <- 404
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, HttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, HttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$create("file", uuid),
throws_error("Server code: 404"))
fakeHttp <- FakeHttpRequest$new(expectedURL)
fakeHttpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, fakeHttpParser)
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, fakeHttpParser,
+ 0, "https://webDavHost/")
REST$delete("file", uuid)
response$status_code <- 404
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, HttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, HttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$delete("file", uuid),
throws_error("Server code: 404"))
fakeHttp <- FakeHttpRequest$new(expectedURL)
fakeHttpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, fakeHttpParser)
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, fakeHttpParser,
+ 0, "https://webDavHost/")
REST$move("file", "newDestination/file", uuid)
response$status_code <- 404
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, HttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, HttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$move("file", "newDestination/file", uuid),
throws_error("Server code: 404"))
fakeHttp <- FakeHttpRequest$new(expectedURL, returnContent)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, FakeHttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, FakeHttpParser$new(),
+ 0, "https://webDavHost/")
returnResult <- REST$getCollectionContent(uuid)
returnedContentMatchExpected <- all.equal(returnResult,
response <- ""
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, FakeHttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, FakeHttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$getCollectionContent(uuid),
throws_error("Response is empty, request may be misconfigured"))
uuid <- "aaaaa-j7d0g-ccccccccccccccc"
fakeHttpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- FakeHttpRequest$new(), fakeHttpParser)
+ REST <- RESTService$new("token", "https://host/",
+ FakeHttpRequest$new(), fakeHttpParser,
+ 0, "https://webDavHost/")
REST$getCollectionContent(uuid)
response <- ""
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, FakeHttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, FakeHttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$getCollectionContent(uuid),
throws_error("Response is empty, request may be misconfigured"))
response$status_code <- 404
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, HttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, HttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$getCollectionContent(uuid),
throws_error("Server code: 404"))
response$content <- c(6, 2, 931, 12003)
fakeHttp <- FakeHttpRequest$new(expectedURL, response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, FakeHttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, FakeHttpParser$new(),
+ 0, "https://webDavHost/")
returnResult <- REST$getResourceSize("file", uuid)
returnedContentMatchExpected <- all.equal(returnResult,
response <- ""
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, FakeHttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, FakeHttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$getResourceSize("file", uuid),
throws_error("Response is empty, request may be misconfigured"))
response$status_code <- 404
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, HttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, HttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$getResourceSize("file", uuid),
throws_error("Server code: 404"))
uuid <- "aaaaa-j7d0g-ccccccccccccccc"
fakeHttpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- FakeHttpRequest$new(), fakeHttpParser)
+ REST <- RESTService$new("token", "https://host/",
+ FakeHttpRequest$new(), fakeHttpParser,
+ 0, "https://webDavHost/")
REST$getResourceSize("file", uuid)
fakeHttp <- FakeHttpRequest$new(expectedURL, serverResponse)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, FakeHttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, FakeHttpParser$new(),
+ 0, "https://webDavHost/")
returnResult <- REST$read("file", uuid, "text", 1024, 512)
response$status_code <- 404
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, HttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, HttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$read("file", uuid),
throws_error("Server code: 404"))
uuid <- "aaaaa-j7d0g-ccccccccccccccc"
fakeHttp <- FakeHttpRequest$new()
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, HttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, HttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$read("file", uuid, "some invalid content type"),
throws_error("Invalid contentType. Please use text or raw."))
uuid <- "aaaaa-j7d0g-ccccccccccccccc"
fakeHttpParser <- FakeHttpParser$new()
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- FakeHttpRequest$new(), fakeHttpParser)
+ REST <- RESTService$new("token", "https://host/",
+ FakeHttpRequest$new(), fakeHttpParser,
+ 0, "https://webDavHost/")
REST$read("file", uuid, "text", 1024, 512)
expectedURL <- "https://webDavHost/c=aaaaa-j7d0g-ccccccccccccccc/file"
fakeHttp <- FakeHttpRequest$new(expectedURL)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, FakeHttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, FakeHttpParser$new(),
+ 0, "https://webDavHost/")
REST$write("file", uuid, fileContent, "text/html")
response$status_code <- 404
fakeHttp <- FakeHttpRequest$new(serverResponse = response)
- REST <- RESTService$new("token", "https://host/", "https://webDavHost/",
- fakeHttp, HttpParser$new())
+ REST <- RESTService$new("token", "https://host/",
+ fakeHttp, HttpParser$new(),
+ 0, "https://webDavHost/")
expect_that(REST$write("file", uuid, fileContent, "text/html"),
throws_error("Server code: 404"))