## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  eval = FALSE
)

## -----------------------------------------------------------------------------
# clusters <- db_list_all_pages(db_cluster_list, page_size = 100)

## ----setup--------------------------------------------------------------------
# library(brickster)
# 
# # create a small cluster on AWS with DBR 9.1 LTS
# new_cluster <- db_cluster_create(
#   name = "brickster-cluster",
#   spark_version = "9.1.x-scala2.12",
#   num_workers = 2,
#   node_type_id = "m5a.xlarge",
#   cloud_attrs = aws_attributes(
#     ebs_volume_count = 3,
#     ebs_volume_size = 100
#   )
# )

## ----echo=FALSE, results='hide'-----------------------------------------------
# temp <- get_and_start_cluster(cluster_id = new_cluster$cluster_id)

## -----------------------------------------------------------------------------
# cluster_info <- db_cluster_get(cluster_id = new_cluster$cluster_id)
# cluster_info$state

## ----results='hide'-----------------------------------------------------------
# 
# # we are required to input all parameters
# db_cluster_edit(
#   cluster_id = new_cluster$cluster_id,
#   name = "brickster-cluster",
#   spark_version = "9.1.x-scala2.12",
#   node_type_id = "m5a.xlarge",
#   autoscale = cluster_autoscale(min_workers = 2, max_workers = 8),
#   cloud_attrs = aws_attributes(
#     ebs_volume_count = 3,
#     ebs_volume_size = 100
#   ),
#   custom_tags = list(
#     purpose = "brickster_cluster_demo"
#   )
# )

## ----results='hide'-----------------------------------------------------------
# # adjust number autoscale range to be between 4-6 workers
# db_cluster_resize(
#   cluster_id = new_cluster$cluster_id,
#   autoscale = cluster_autoscale(min_workers = 4, max_workers = 6)
# )

## ----results='hide'-----------------------------------------------------------
# # pin the cluster
# db_cluster_pin(cluster_id = new_cluster$cluster_id)
# 
# # unpin the cluster
# # db_cluster_unpin(cluster_id = new_cluster$cluster_id)

## ----results='hide'-----------------------------------------------------------
# # installing a package from CRAN on cluster
# db_libs_install(
#   cluster_id = new_cluster$cluster_id,
#   libraries = libraries(
#     lib_cran(package = "palmerpenguins"),
#     lib_cran(package = "dplyr")
#   )
# )

## ----results='hide'-----------------------------------------------------------
# wait_for_lib_installs(cluster_id = new_cluster$cluster_id)

## -----------------------------------------------------------------------------
# db_libs_cluster_status(cluster_id = new_cluster$cluster_id)

## ----results='hide'-----------------------------------------------------------
# db_libs_uninstall(
#   cluster_id = new_cluster$cluster_id,
#   libraries = libraries(
#     lib_cran(package = "palmerpenguins")
#   )
# )

## -----------------------------------------------------------------------------
# db_libs_cluster_status(cluster_id = new_cluster$cluster_id)

## -----------------------------------------------------------------------------
# page <- db_cluster_events(cluster_id = new_cluster$cluster_id, page_size = 50)
# head(page$events, 1)
# if (!is.null(page$next_page_token) && nzchar(page$next_page_token)) {
#   next_page <- db_cluster_events(
#     cluster_id = new_cluster$cluster_id,
#     page_size = 50,
#     page_token = page$next_page_token
#   )
# }

## -----------------------------------------------------------------------------
# events <- db_list_all_pages(
#   db_cluster_events,
#   cluster_id = new_cluster$cluster_id,
#   event_types = list("RUNNING", "TERMINATING"),
#   page_size = 500
# )

## ----echo=FALSE, results='hide'-----------------------------------------------
# db_cluster_unpin(cluster_id = new_cluster$cluster_id)
# db_cluster_perm_delete(cluster_id = new_cluster$cluster_id)

