Mercurial > repos > ecology > hirondelle_crim
annotate ogc_api_processes_wrapper.R @ 0:afede0916f0a draft
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
author | ecology |
---|---|
date | Fri, 07 Jun 2024 11:37:33 +0000 |
parents | |
children | 52baddd15640 |
rev | line source |
---|---|
0
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
1 library("httr2") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
2 library("jsonlite") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
3 library("getopt") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
4 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
5 cat("start generic wrapper service \n") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
6 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
7 getParameters <- function(){ |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
8 con <- file("inputs.json", "r") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
9 lines <- readLines(con) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
10 close(con) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
11 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
12 json_string <- paste(lines, collapse = "\n") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
13 json_data <- fromJSON(json_string) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
14 return(json_data$conditional_process) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
15 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
16 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
17 parseResponseBody <- function(body) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
18 hex <- c(body) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
19 intValues <- as.integer(hex) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
20 rawVector <- as.raw(intValues) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
21 readableOutput <- rawToChar(rawVector) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
22 jsonObject <- jsonlite::fromJSON(readableOutput) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
23 return(jsonObject) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
24 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
25 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
26 getOutputs <- function(inputs, output, server) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
27 url <- paste(paste(server, "/processes/", sep = ""), inputs$select_process, sep = "") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
28 request <- request(url) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
29 response <- req_perform(request) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
30 responseBody <- parseResponseBody(response$body) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
31 outputs <- list() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
32 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
33 for (x in 1:length(responseBody$outputs)) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
34 outputformatName <- paste(names(responseBody$outputs[x]), "_outformat", sep="") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
35 output_item <- list() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
36 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
37 for (p in names(inputs)) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
38 if(p == outputformatName){ |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
39 format <- list("mediaType" = inputs[[outputformatName]]) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
40 output_item$format <- format |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
41 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
42 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
43 output_item$transmissionMode <- "reference" |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
44 outputs[[x]] <- output_item |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
45 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
46 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
47 names(outputs) <- names(responseBody$outputs) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
48 return(outputs) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
49 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
50 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
51 executeProcess <- function(url, process, requestBodyData, cookie) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
52 url <- paste(paste(paste(url, "processes/", sep = ""), process, sep = ""), "/execution", sep = "") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
53 requestBodyData$inputs$cookie <- NULL |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
54 requestBodyData$inputs$select_process <- NULL |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
55 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
56 requestBodyData$inputs$s3_access_key <- requestBodyData$inputs$user_credentials$s3_access_key |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
57 requestBodyData$inputs$s3_secret_key <- requestBodyData$inputs$user_credentials$s3_secret_key |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
58 requestBodyData$inputs$user_credentials <- NULL |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
59 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
60 body <- list() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
61 body$inputs <- requestBodyData$inputs |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
62 body$mode <- "async" |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
63 body$response <- "document" |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
64 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
65 response <- request(url) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
66 req_headers( |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
67 "Accept" = "application/json", |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
68 "Content-Type" = "application/json", |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
69 "Cookie" = cookie |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
70 ) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
71 req_body_json(body) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
72 req_perform() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
73 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
74 cat("\n Process executed") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
75 cat("\n status: ", response$status_code) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
76 cat("\n jobID: ", parseResponseBody(response$body)$jobID, "\n") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
77 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
78 jobID <- parseResponseBody(response$body)$jobID |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
79 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
80 return(jobID) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
81 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
82 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
83 checkJobStatus <- function(server, process, jobID, cookie) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
84 url <- paste0(server, "processes/", process, "/jobs/", jobID) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
85 response <- request(url) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
86 req_headers( |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
87 "Cookie" = cookie |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
88 ) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
89 req_perform() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
90 jobStatus <- parseResponseBody(response$body)$status |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
91 jobProgress <- parseResponseBody(response$body)$progress |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
92 return(jobStatus) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
93 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
94 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
95 getStatusCode <- function(server, process, jobID, cookie) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
96 url <- paste0(server, "processes/", process, "/jobs/", jobID) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
97 response <- request(url) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
98 req_headers( |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
99 "Cookie" = cookie |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
100 ) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
101 req_perform() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
102 status_code <- response$status_code |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
103 return(status_code) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
104 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
105 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
106 getResult <- function (server, process, jobID, cookie) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
107 response <- request(paste0(server, "processes/", process, "/jobs/", jobID, "/results")) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
108 req_headers( |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
109 "Cookie" = cookie |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
110 ) %>% |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
111 req_perform() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
112 return(response) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
113 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
114 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
115 retrieveResults <- function(server, process, jobID, outputData, cookie) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
116 status_code <- getStatusCode(server, process, jobID, cookie) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
117 if(status_code == 200){ |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
118 status <- "running" |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
119 while(status == "running"){ |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
120 jobStatus <- checkJobStatus(server, process, jobID, cookie) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
121 print(jobStatus) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
122 if (jobStatus == "succeeded") { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
123 status <- jobStatus |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
124 result <- getResult(server, process, jobID, cookie) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
125 if (result$status_code == 200) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
126 resultBody <- parseResponseBody(result$body) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
127 urls <- unname(unlist(lapply(resultBody, function(x) x$href))) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
128 urls_with_newline <- paste(urls, collapse = "\n") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
129 con <- file(outputData, "w") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
130 writeLines(urls_with_newline, con = con) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
131 close(con) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
132 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
133 } else if (jobStatus == "failed") { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
134 status <- jobStatus |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
135 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
136 Sys.sleep(3) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
137 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
138 cat("\n done \n") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
139 } else if (status_code1 == 400) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
140 print("A query parameter has an invalid value.") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
141 } else if (status_code1 == 404) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
142 print("The requested URI was not found.") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
143 } else if (status_code1 == 500) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
144 print("The requested URI was not found.") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
145 } else { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
146 print(paste("HTTP", status_code1, "Error:", resp1$status_message)) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
147 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
148 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
149 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
150 is_url <- function(x) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
151 grepl("^https?://", x) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
152 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
153 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
154 server <- "https://hirondelle.crim.ca/weaver/" |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
155 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
156 print("--> Retrieve parameters") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
157 inputParameters <- getParameters() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
158 print("--> Parameters retrieved") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
159 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
160 args <- commandArgs(trailingOnly = TRUE) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
161 outputLocation <- args[2] |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
162 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
163 print("--> Retrieve outputs") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
164 outputs <- getOutputs(inputParameters, outputLocation, server) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
165 print("--> Outputs retrieved") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
166 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
167 print("--> Parse inputs") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
168 convertedKeys <- c() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
169 for (key in names(inputParameters)) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
170 if (is.character(inputParameters[[key]]) && (endsWith(inputParameters[[key]], ".dat") || endsWith(inputParameters[[key]], ".txt"))) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
171 con <- file(inputParameters[[key]], "r") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
172 url_list <- list() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
173 #while (length(line <- readLines(con, n = 1)) > 0) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
174 # if (is_url(line)) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
175 # url_list <- c(url_list, list(list(href = trimws(line)))) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
176 # } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
177 #} |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
178 con <- file(inputParameters[[key]], "r") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
179 lines <- readLines(con) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
180 close(con) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
181 json_string <- paste(lines, collapse = "\n") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
182 json_data <- fromJSON(json_string) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
183 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
184 inputParameters[[key]] <- json_data |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
185 convertedKeys <- append(convertedKeys, key) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
186 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
187 else if (grepl("_Array_", key)) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
188 keyParts <- strsplit(key, split = "_")[[1]] |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
189 type <- keyParts[length(keyParts)] |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
190 values <- inputParameters[[key]] |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
191 value_list <- strsplit(values, split = ",") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
192 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
193 convertedValues <- c() |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
194 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
195 for (value in value_list) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
196 if(type == "integer") { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
197 value <- as.integer(value) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
198 } else if (type == "numeric") { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
199 value <- as.numeric(balue) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
200 } else if (type == "character") { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
201 value <- as.character(value) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
202 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
203 convertedValues <- append(convertedValues, value) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
204 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
205 convertedKey <- "" |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
206 for (part in keyParts) { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
207 if(part == "Array") { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
208 break |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
209 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
210 convertedKey <- paste(convertedKey, paste(part, "_", sep=""), sep="") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
211 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
212 convertedKey <- substr(convertedKey, 1, nchar(convertedKey)-1) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
213 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
214 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
215 inputParameters[[key]] <- convertedValues |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
216 convertedKeys <- append(convertedKeys, convertedKey) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
217 } else { |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
218 convertedKeys <- append(convertedKeys, key) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
219 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
220 } |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
221 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
222 names(inputParameters) <- convertedKeys |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
223 print("--> Inputs parsed") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
224 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
225 print("--> Prepare process execution") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
226 jsonData <- list( |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
227 "inputs" = inputParameters, |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
228 "outputs" = outputs |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
229 ) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
230 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
231 cookie <- inputParameters$cookie |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
232 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
233 print("--> Execute process") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
234 jobID <- executeProcess(server, inputParameters$select_process, jsonData, cookie) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
235 print("--> Process executed") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
236 |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
237 print("--> Retrieve results") |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
238 retrieveResults(server, inputParameters$select_process, jobID, outputLocation, cookie) |
afede0916f0a
planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 89c188931ba43399013ebc741bc14365e53d418a
ecology
parents:
diff
changeset
|
239 print("--> Results retrieved") |