R/dexr_server_run.R

Defines functions server_isrunning server_version server_status server_shutdown server_start

Documented in server_isrunning server_shutdown server_start server_status server_version

#' Start backend server
#' @param dexpa 
#' @return status code
#' 
#' @author Sascha Holzhauer
#' @export
server_start <- function(dexpa) {
	futile.logger::flog.info("Starting Market Backend server (%s:%s)...", dexpa$server$url, dexpa$server$port,
			name = "dexr.server.run.start")
	r <- httr::GET(paste(dexpa$server$url, ":", dexpa$server$port, "/", dexpa$server$api$start,sep=""),
			httr::authenticate(dexpa$server$username, dexpa$server$password, type = "basic"))
	return(if(httr::status_code(r)==200)"Starting Market Backend server successful" else "Starting Market Backend server NOT successful")
}
#' Stop backend server
#' @param dexpa 
#' @return shutdown message
#' 
#' @author Sascha Holzhauer
#' @export
server_shutdown <- function(dexpa) {
	futile.logger::flog.info("Shutting down Market Backend server...", name = "dexr.server.run.shutdown")
	try(httr::POST(paste(dexpa$server$url,":", dexpa$server$port, "/", dexpa$server$api$shutdown,sep=""),
			httr::authenticate(dexpa$server$username, dexpa$server$password, type = "basic")), silent=T)
	futile.logger::flog.info("Market Backend server shut down.", name = "dexr.server.run.shutdown")
}
#' Retrieve backend server status information
#' @param dexpa 
#' @return JSON info map
#' 
#' @author Sascha Holzhauer
#' @export
server_status <- function(dexpa) {
	futile.logger::flog.debug("Request server (%s:%s) status...", dexpa$server$url, dexpa$server$port,
			name = "dexr.server.run.status")
	req <- httr::GET(paste(dexpa$server$url,":", dexpa$server$port, "/", dexpa$server$api$status,sep=""),
			httr::authenticate(dexpa$server$username, dexpa$server$password, type = "basic"))
	httr::content(req, as = "parsed")
}
#' Retrieve backend server version
#' @param dexpa 
#' @return JSON info map
#' 
#' @author Sascha Holzhauer
#' @export
server_version <- function(dexpa) {
	futile.logger::flog.debug("Request server (%s:%s) version...", dexpa$server$url, dexpa$server$port,
			name = "dexr.server.run.status")
	req <- httr::GET(paste(dexpa$server$url,":", dexpa$server$port, "/", dexpa$server$api$version,sep=""),
			httr::authenticate(dexpa$server$username, dexpa$server$password, type = "basic"))
	httr::content(req, as = "parsed")$version
}
#' Checks whether the server is ready for requests.
#' @param dexpa 
#' @return TRUE if the server is up
#' 
#' @author Sascha Holzhauer
#' @export
server_isrunning <- function(dexpa) {
	futile.logger::flog.debug("Check server (%s:%s) running...", dexpa$server$url, dexpa$server$port,
			name = "dexr.server.run.status")
	tryCatch({
		httr::GET(url=paste(dexpa$server$url, ":", dexpa$server$port, sep=""))
		return(TRUE)	
	}, error = function(e) {
		return(FALSE)
	})
	#RCurl::url.exists(paste(dexpa$server$url, ":", dexpa$server$port, sep=""))
}
UniK-INES/dexR documentation built on June 30, 2021, 11:05 p.m.