Closed muschellij2 closed 3 years ago
library(plumberDeploy)
library(analogsea)
#>
#> Attaching package: 'analogsea'
#> The following object is masked from 'package:graphics':
#>
#> image
library(httr)
d = droplets()
if (length(d) == 0) {
droplet = do_provision(example = FALSE)
} else {
droplet = d[[1]]
}
application_name = "hello"
port = 8000
ip = analogsea:::droplet_ip(droplet)
url = paste0("http://", ip)
do_remove_api(droplet, path = application_name, delete = TRUE)
#> stopping service: plumber-hello
#> disabling service: plumber-hello
#> removing service: plumber-hello
#> removing config: plumber-hello
#> reloading nginx: plumber-hello
#> reloading plumber folder: plumber-hello
#> <droplet>MountedFormula (210041941)
#> IP: 157.245.236.7
#> Status: active
#> Region: San Francisco 2
#> Image: 20.04 (LTS) x64
#> Size: s-1vcpu-1gb
#> Volumes:
do_deploy_api(droplet, path = application_name,
system.file("plumber", "10-welcome", package = "plumber"),
port=port, forward=TRUE)
#> [100%] /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plumber/plumber/10-welcome/plumber.R[100%] /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plumber/plumber/10-welcome/plumber.R
#> /tmp/OSGVARYQNZ
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f65ef01af[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f65ef01af
#> /etc/systemd/system/plumber-hello.service
#> ● plumber-hello.service - Plumber API
#> Loaded: loaded (/etc/systemd/system/plumber-hello.service; enabled; vendor preset: enabled)
#> Active: active (running) since Wed 2020-09-30 18:38:28 UTC; 1s ago
#> Main PID: 54728 (R)
#> Tasks: 2 (limit: 1137)
#> Memory: 60.1M
#> CGroup: /system.slice/plumber-hello.service
#> └─54728 /usr/lib/R/bin/exec/R --no-echo --no-restore -e pr~+~<-~+~plumber::pr('/var/plumber/hello/plumber.R');~+~pr$setDocs(FALSE);~+~~+~pr$run(port=8000)
#>
#> Sep 30 18:38:28 MountedFormula systemd[1]: Started Plumber API.
#> Sep 30 18:38:28 MountedFormula Rscript[54728]: Running plumber API at http://127.0.0.1:8000
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f2e57bc71[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f2e57bc71
#> /etc/nginx/sites-available/plumber-apis/hello.conf
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f214b67c[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f214b67c
#> /etc/nginx/sites-available/plumber-apis/_forward.conf
res = httr::GET(paste0(url, "/", application_name))
httr::status_code(res)
#> [1] 200
# expect failure
do_deploy_api(droplet, path = application_name,
system.file("plumber", "10-welcome", package = "plumber"),
port=port, forward=TRUE)
#> [100%] /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plumber/plumber/10-welcome/plumber.R[100%] /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plumber/plumber/10-welcome/plumber.R
#> /tmp/CPNXUNAZUG
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f1dd887f5[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f1dd887f5
#> /etc/systemd/system/plumber-hello.service
#> ● plumber-hello.service - Plumber API
#> Loaded: loaded (/etc/systemd/system/plumber-hello.service; enabled; vendor preset: enabled)
#> Active: active (running) since Wed 2020-09-30 18:38:37 UTC; 1s ago
#> Main PID: 54826 (R)
#> Tasks: 2 (limit: 1137)
#> Memory: 60.1M
#> CGroup: /system.slice/plumber-hello.service
#> └─54826 /usr/lib/R/bin/exec/R --no-echo --no-restore -e pr~+~<-~+~plumber::pr('/var/plumber/hello/plumber.R');~+~pr$setDocs(FALSE);~+~~+~pr$run(port=8000)
#>
#> Sep 30 18:38:37 MountedFormula systemd[1]: Started Plumber API.
#> Sep 30 18:38:37 MountedFormula Rscript[54826]: Running plumber API at http://127.0.0.1:8000
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f72c5f521[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f72c5f521
#> /etc/nginx/sites-available/plumber-apis/hello.conf
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f22608465[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f22608465
#> /etc/nginx/sites-available/plumber-apis/_forward.conf
res = httr::GET(paste0(url, "/", application_name))
httr::status_code(res)
#> [1] 200
do_deploy_api(droplet, path = application_name,
system.file("plumber", "10-welcome", package = "plumber"),
port=port, forward=TRUE, overwrite = TRUE)
#> stopping service: plumber-hello
#> disabling service: plumber-hello
#> removing service: plumber-hello
#> removing config: plumber-hello
#> reloading nginx: plumber-hello
#> reloading plumber folder: plumber-hello
#> [100%] /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plumber/plumber/10-welcome/plumber.R[100%] /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plumber/plumber/10-welcome/plumber.R
#> /tmp/GKJUSYGAMS
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f6e941484[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f6e941484
#> /etc/systemd/system/plumber-hello.service
#> ● plumber-hello.service - Plumber API
#> Loaded: loaded (/etc/systemd/system/plumber-hello.service; enabled; vendor preset: enabled)
#> Active: active (running) since Wed 2020-09-30 18:38:48 UTC; 1s ago
#> Main PID: 54995 (R)
#> Tasks: 2 (limit: 1137)
#> Memory: 60.1M
#> CGroup: /system.slice/plumber-hello.service
#> └─54995 /usr/lib/R/bin/exec/R --no-echo --no-restore -e pr~+~<-~+~plumber::pr('/var/plumber/hello/plumber.R');~+~pr$setDocs(FALSE);~+~~+~pr$run(port=8000)
#>
#> Sep 30 18:38:48 MountedFormula systemd[1]: Started Plumber API.
#> Sep 30 18:38:48 MountedFormula Rscript[54995]: Running plumber API at http://127.0.0.1:8000
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f3bcf1ed3[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f3bcf1ed3
#> /etc/nginx/sites-available/plumber-apis/hello.conf
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f1af0cd52[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f1af0cd52
#> /etc/nginx/sites-available/plumber-apis/_forward.conf
res = httr::GET(paste0(url, "/", application_name))
httr::status_code(res)
#> [1] 200
do_remove_api(droplet, path = "date", delete = TRUE)
#> stopping service: plumber-date
#> disabling service: plumber-date
#> removing service: plumber-date
#> removing config: plumber-date
#> reloading nginx: plumber-date
#> reloading plumber folder: plumber-date
#> <droplet>MountedFormula (210041941)
#> IP: 157.245.236.7
#> Status: active
#> Region: San Francisco 2
#> Image: 20.04 (LTS) x64
#> Size: s-1vcpu-1gb
#> Volumes:
api = '#* @get /
function() {
Sys.Date()
}'
tfile = tempfile()
dir.create(tfile)
outfile = file.path(tfile, "plumber.R")
writeLines(api, outfile)
file.exists(outfile)
#> [1] TRUE
readLines(outfile)
#> [1] "#* @get /" "function() {" " Sys.Date()" "}"
plumberDeploy::do_deploy_api(droplet, "date", tfile, port = 8001, docs = TRUE,
forward = TRUE)
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f3737d04f/plumber.R[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f3737d04f/plumber.R
#> /tmp/YTTTBBSIRJ
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f314d0edb[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f314d0edb
#> /etc/systemd/system/plumber-date.service
#> ● plumber-date.service - Plumber API
#> Loaded: loaded (/etc/systemd/system/plumber-date.service; enabled; vendor preset: enabled)
#> Active: active (running) since Wed 2020-09-30 18:38:58 UTC; 1s ago
#> Main PID: 55153 (R)
#> Tasks: 2 (limit: 1137)
#> Memory: 63.1M
#> CGroup: /system.slice/plumber-date.service
#> └─55153 /usr/lib/R/bin/exec/R --no-echo --no-restore -e pr~+~<-~+~plumber::pr('/var/plumber/date/plumber.R');~+~pr$setDocs(TRUE);~+~~+~pr$run(port=8001)
#>
#> Sep 30 18:38:58 MountedFormula systemd[1]: Started Plumber API.
#> Sep 30 18:38:59 MountedFormula Rscript[55153]: Running plumber API at http://127.0.0.1:8001
#> Sep 30 18:38:59 MountedFormula Rscript[55153]: Running swagger Docs at http://127.0.0.1:8001/__docs__/
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f3a0a6526[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f3a0a6526
#> /etc/nginx/sites-available/plumber-apis/date.conf
#> [100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f76bf8f[100%] /private/var/folders/1s/wrtqcpxn685_zk570bnx9_rr0000gr/T/RtmpY22MLH/file16e7f76bf8f
#> /etc/nginx/sites-available/plumber-apis/_forward.conf
applet_url = paste0("http://", ip, "/", "date")
res = httr::GET(applet_url)
httr::status_code(res)
#> [1] 200
Created on 2020-09-30 by the reprex package (v0.3.0.9001)
I still don't think the package is operational from the standpoint of DO. I'm trying to demonstrate that now with a video and reprex. Also address #14