rstudio / rstudioapi

Safely access RStudio's API (when available)
http://rstudio.github.io/rstudioapi
Other
167 stars 36 forks source link

'resourceLimits' must be of class 'rs_launcher_resourcelimit' #282

Open kobusbosman opened 1 year ago

kobusbosman commented 1 year ago

Hi,

I have an issue when trying to use launcherSubmitJob with the resourceLimits argument:

rstudioapi::launcherSubmitJob( name = "testcoresetting", cluster = "Local", command = "R", args = "-e print(\'hi\')", resourceLimits = rstudioapi::launcherResourceLimit(type = "cpuCount", value = 4) )

leads to:

Error in (function (name, args = NULL, cluster = "Local", command = NULL, : 'resourceLimits' must be of class 'rs_launcher_resourcelimit'

This error is also thrown with cluster = "slurm_cluster" and args = "-e future::availableCores()", which is my actual use case. The error is not thrown when resourceLimits is not used.

Is this a bug or should I be using this argument differently? Thank you!

kobusbosman commented 1 year ago

I found that self-composing the resourceLimits like so lets it pass through without a problem:

resourceLimits <- list(list(type = "cpuCount", value = "4")) class(resourceLimits[[1]]$type) <- c("rs.scalar", "rs_launcher_resourcelimit") class(resourceLimits[[1]]$value) <- c("rs.scalar", "rs_launcher_resourcelimit") class(resourceLimits[[1]]) <- "rs_launcher_resourcelimit"