#!/bin/sh

po_domain="alterator-bacula"
alterator_api_version=1

. bacula-alterator-sh-functions

write_status_param()
{
    local name="$1";shift
    local value="$1";shift

    if [ -n "$value" ]; then
	write_string_param "$name" "$(job_status "$value")"
    else
	write_string_param "$name" "-"
    fi
}

on_message()
{
  case "$in_action" in
    read)
	local director_last="$(bacula_director_status_last)"
	local director_current="$(bacula_director_status_current)"
	local director_running="$([ -z "$director_current" ] || bacula_director_status_running)"

	local storage_last="$(bacula_storage_status_last)"
	local storage_current="$(bacula_storage_status_current)"
	local storage_running="$([ -z "$storage_current" ] || bacula_storage_status_running)"
	local storage_path="$(bacula_storage_get_path)"
	local storage_usage="$([ -z "$storage_path" ] || bacula_storage_get_usage "$storage_path")"


	write_status_param director_last "$director_last"
	write_status_param director_current "$director_current"
	write_string_param director_running "$director_running"

	write_status_param storage_last "$storage_last"
	write_status_param storage_current "$storage_current"
	write_string_param storage_running "$storage_running"
	write_string_param storage_usage "$storage_usage"
	;;
  esac
}

message_loop
