#!/bin/bash

function ti_cmd_tpcc_go_load()
{
	local ti_file="${1}"
	local ti_args="${2}"
	local cmd_mod_names="${3}"
	local cmd_hosts="${4}"
	local cmd_indexes="${5}"
	local mods="${6}"
	shift 6

	if [ -z "${2+x}" ]; then
		echo "[cmd tpcc/load] usage: <cmd> warehouses threads" >&2
		return 1
	fi

	local warehouses="${1}"
	local threads="${2}"

	local entry_dir="${ti_file}.data"

	local tidb_mod=`from_mods_random_mod "${mods}" 'tidb' 'false'`
	local tidb_host=`from_mod_get_host "${tidb_mod}"`
	local tidb_dir=`from_mod_get_dir "${tidb_mod}"`
	local tidb_port=`ssh_get_value_from_proc_info "${tidb_host}" "${tidb_dir}" 'tidb_port'`

	local ti="${integrated}/ops/ti.sh"

	local title="=> `date +%D-%T`"
	local log="${entry_dir}/tpcc/load.log"
	local run_log="${entry_dir}/tpcc/run.log"
	local count="${entry_dir}/tpcc/count"

	mkdir -p "${entry_dir}/tpcc"

	echo "${title}" >> "${log}"
	tpcc_go_load "${entry_dir}" "${tidb_host}" "${tidb_port}" "${warehouses}" "${threads}" | \
		tee -a "${log}" | tee -a ${run_log}

	echo "${title}" >> "${count}"
	"${integrated}/ops/ti.sh" -h "${cmd_hosts}" -m "${cmd_mod_names}" -i "${cmd_indexes}" \
		-k "${ti_args}" "${ti_file}" 'tpcc/count' | tee -a "${count}"
}

source "`cd $(dirname ${BASH_SOURCE[0]}) && pwd`/_env.sh"
auto_error_handle

ti_cmd_tpcc_go_load "${@}"
