meztez / plumberDeploy

Other
50 stars 12 forks source link

Trying to fix re-deployment #15

Closed muschellij2 closed 3 years ago

muschellij2 commented 3 years ago

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

muschellij2 commented 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)

Session info sessioninfo::session_info() #> ─ Session info ─────────────────────────────────────────────────────────────── #> setting value #> version R version 4.0.2 (2020-06-22) #> os macOS Catalina 10.15.6 #> system x86_64, darwin17.0 #> ui X11 #> language (EN) #> collate en_US.UTF-8 #> ctype en_US.UTF-8 #> tz America/New_York #> date 2020-09-30 #> #> ─ Packages ─────────────────────────────────────────────────────────────────── #> package * version date lib source #> analogsea * 0.8.0 2020-01-30 [2] CRAN (R 4.0.0) #> askpass 1.1 2019-01-13 [2] CRAN (R 4.0.0) #> assertthat 0.2.1 2019-03-21 [2] CRAN (R 4.0.0) #> backports 1.1.10 2020-09-15 [1] CRAN (R 4.0.2) #> cli 2.0.2 2020-02-28 [2] CRAN (R 4.0.0) #> crayon 1.3.4 2017-09-16 [2] CRAN (R 4.0.0) #> credentials 1.3.0 2020-07-21 [2] CRAN (R 4.0.2) #> curl 4.3 2019-12-02 [2] CRAN (R 4.0.0) #> digest 0.6.25 2020-02-23 [2] CRAN (R 4.0.0) #> ellipsis 0.3.1 2020-05-15 [2] CRAN (R 4.0.0) #> evaluate 0.14 2019-05-28 [2] CRAN (R 4.0.0) #> fansi 0.4.1 2020-01-08 [2] CRAN (R 4.0.0) #> fs 1.5.0 2020-07-31 [2] CRAN (R 4.0.2) #> glue 1.4.2 2020-08-27 [1] CRAN (R 4.0.2) #> highr 0.8 2019-03-20 [2] CRAN (R 4.0.0) #> htmltools 0.5.0 2020-06-16 [2] CRAN (R 4.0.0) #> httr * 1.4.2 2020-07-20 [2] CRAN (R 4.0.2) #> jsonlite 1.7.1 2020-09-07 [1] CRAN (R 4.0.2) #> knitr 1.30 2020-09-22 [1] CRAN (R 4.0.2) #> lifecycle 0.2.0 2020-03-06 [2] CRAN (R 4.0.0) #> magrittr 1.5 2014-11-22 [2] CRAN (R 4.0.0) #> openssl 1.4.2 2020-06-27 [2] CRAN (R 4.0.0) #> pillar 1.4.6 2020-07-10 [2] CRAN (R 4.0.2) #> pkgconfig 2.0.3 2019-09-22 [2] CRAN (R 4.0.0) #> plumberDeploy * 0.1.3.9000 2020-09-30 [1] local #> purrr 0.3.4 2020-04-17 [2] CRAN (R 4.0.0) #> R6 2.4.1 2019-11-12 [2] CRAN (R 4.0.0) #> reprex 0.3.0.9001 2020-09-30 [1] Github (tidyverse/reprex@d3fc4b8) #> rlang 0.4.7.9000 2020-09-09 [1] Github (r-lib/rlang@60c0151) #> rmarkdown 2.3 2020-06-18 [2] CRAN (R 4.0.0) #> rstudioapi 0.11 2020-02-07 [2] CRAN (R 4.0.0) #> sessioninfo 1.1.1 2018-11-05 [2] CRAN (R 4.0.0) #> ssh 0.7.0 2020-07-21 [2] CRAN (R 4.0.2) #> stringi 1.5.3 2020-09-09 [1] CRAN (R 4.0.2) #> stringr 1.4.0 2019-02-10 [2] CRAN (R 4.0.0) #> styler 1.3.2 2020-02-23 [2] CRAN (R 4.0.0) #> sys 3.4 2020-07-23 [2] CRAN (R 4.0.2) #> tibble 3.0.3 2020-07-10 [2] CRAN (R 4.0.2) #> vctrs 0.3.4 2020-08-29 [1] CRAN (R 4.0.2) #> withr 2.3.0 2020-09-22 [1] CRAN (R 4.0.2) #> xfun 0.18 2020-09-29 [1] CRAN (R 4.0.2) #> yaml 2.2.1 2020-02-01 [2] CRAN (R 4.0.0) #> #> [1] /Users/johnmuschelli/Library/R/4.0/library #> [2] /Library/Frameworks/R.framework/Versions/4.0/Resources/library