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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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")