From 5b02715951996ee50b6c0f9d6046a3c9ff64dd12 Mon Sep 17 00:00:00 2001 From: Joe Mienko Date: Wed, 12 Jul 2017 06:45:13 -0700 Subject: [PATCH 1/4] Adding function to grab SHA from the metrics-api. This is only designed to return a SHA from the metrics-api container image. In most other instances, the function will simply return 'SHA information not available' --- R/get_sha_info.R | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 R/get_sha_info.R diff --git a/R/get_sha_info.R b/R/get_sha_info.R new file mode 100644 index 0000000..dc44aa3 --- /dev/null +++ b/R/get_sha_info.R @@ -0,0 +1,9 @@ +get_sha_info <- function(){ + sha_file <- tryCatch(paste0(readLines("R/install-packages.R"), collapse = "") + ,warning=function(w) 1) + if(sha_file==1) { + sha_value <- 'SHA information not available' + } else + sha_value <- stringr::str_extract(sha_file, stringr::regex('(?<=oliveR@).*(?=\\\\")', multiline = TRUE)) + return(sha_value) +} \ No newline at end of file From b3c4761935c795eedc9a0a0ebb7d5045339e7ba1 Mon Sep 17 00:00:00 2001 From: Joe Mienko Date: Wed, 12 Jul 2017 06:51:42 -0700 Subject: [PATCH 2/4] Adding functions to the initialization of objects in the measurement_single_value class to add creation time-stamps and SHAs. --- R/measurement_single_value_class.R | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/R/measurement_single_value_class.R b/R/measurement_single_value_class.R index 8482c2c..ee622b0 100644 --- a/R/measurement_single_value_class.R +++ b/R/measurement_single_value_class.R @@ -36,6 +36,8 @@ measurement_single_value <- R6Class("measurement_single_value", ,data_out_type = NULL ,summary_function = NULL ,na_rm = NULL + ,calc_date = NULL + ,calc_sha = NULL ,initialize = function(metric_key = NA ,group_key = 'id_organization' ,measurement_name = NA @@ -48,7 +50,9 @@ measurement_single_value <- R6Class("measurement_single_value", ,rename_var = NA ,data_out_type = NA ,summary_function = 'mean' - ,na_rm = TRUE) { + ,na_rm = TRUE + ,calc_date = NA + ,calc_sha = NA) { self$metric_key <- metric_key self$group_key <- group_key self$measurement_name <- measurement_name @@ -70,6 +74,8 @@ measurement_single_value <- R6Class("measurement_single_value", ,data_out_type = self$data_out_type ,summary_function = self$summary_function ,na_rm = self$na_rm) + self$calc_date <- lubridate::today() + self$calc_sha <- get_sha_info() } ,get_value = function(group_id) { filter_criteria <- interp(~ which_column == group_id From cf01b52503703519c43be705db90e3bf89f1fb06 Mon Sep 17 00:00:00 2001 From: Joe Mienko Date: Wed, 12 Jul 2017 06:59:21 -0700 Subject: [PATCH 3/4] include date and sha in the get_metric_list() output. --- R/create_measurement_dimension_set.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/create_measurement_dimension_set.R b/R/create_measurement_dimension_set.R index 4354cb3..bbce0fc 100644 --- a/R/create_measurement_dimension_set.R +++ b/R/create_measurement_dimension_set.R @@ -165,6 +165,8 @@ create_measurement_dimension_set <- function(mpp_group = NA ,sub_value) ,threshold = FALSE ,template = 'default' + ,calc_date = measurement_list[[characteristic_summary_obj]]$calc_date + ,calc_sha = measurement_list[[characteristic_summary_obj]]$calc_sha ) return(dimensions) From bfbc2c690012d934bd12267780cb7e2e3f96b5c7 Mon Sep 17 00:00:00 2001 From: Joe Mienko Date: Wed, 12 Jul 2017 07:29:03 -0700 Subject: [PATCH 4/4] fix the overzealous escaping in my regex --- R/get_sha_info.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/get_sha_info.R b/R/get_sha_info.R index dc44aa3..f9613ba 100644 --- a/R/get_sha_info.R +++ b/R/get_sha_info.R @@ -1,9 +1,9 @@ get_sha_info <- function(){ - sha_file <- tryCatch(paste0(readLines("R/install-packages.R"), collapse = "") + sha_file <- tryCatch(paste0(readLines("/app/R/install-packages.R"), collapse = "") ,warning=function(w) 1) if(sha_file==1) { sha_value <- 'SHA information not available' } else - sha_value <- stringr::str_extract(sha_file, stringr::regex('(?<=oliveR@).*(?=\\\\")', multiline = TRUE)) + sha_value <- stringr::str_extract(sha_file, stringr::regex('(?<=oliveR@).*(?=\\")', multiline = TRUE)) return(sha_value) } \ No newline at end of file