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