latest_mmt_version

This commit is contained in:
Deepthi
2021-06-21 12:35:07 +05:30
parent 559fa36e6a
commit b4d396929e
425 changed files with 65022 additions and 0 deletions

View File

@@ -0,0 +1,156 @@
#!/bin/bash -e
HOME="/home/compegence/customer"
#Directories
homeDir=$HOME/MMT
configDir=$homeDir/conf
input_file=$configDir/etl-config.txt
declare -A credentials
while IFS="=" read -r key value; do
credentials[$key]=$value
done < <( sed -e '/^\s*$/ d' -e '/^#/ d' $input_file )
#for i in ${credentials[@]}; do echo ***$i; done
user=${credentials[user]}
password=${credentials[password]}
host=${credentials[host]}
db=${credentials[db]}
protocol=${credentials[protocol]}
server=${credentials[server]}
#db="m_test"
#mmt_con="psql -X -A -t postgresql://$user:$password@$host/$db?options=--search_path%3D"
#postgres_con="psql -A -t postgresql://$user:$password@$host/$db"
psql_base_arg="postgresql://$user:$password@$host/$db"
#echo $psql_base_arg
# load the record into the fw_jobctl_runschedule accounting for run frequency (hourly, daily, monthly, yearly) and insert
## ???? Should this go into the first loop; to load only one runschedule
/home/compegence/customer/MMT/sql/scripts/job_load.sh
##***** Run frequency loop; Outer Loop
## ???? Should we change it to select runschedules applicable, from the fw_jobctl_jobstep_master; and based on that run the loop
#while loop for each client_id,function_id,run_frequency from fw_jobctl_runschedule_jobstep
while IFS="|" read -a outer
do
client_id=${outer[0]}
function_id=${outer[1]}
run_frequency=${outer[2]}
#Update start_time for fw_jobctl_runschedule
#psql $psql_base_arg -c "update fw_core.fw_jobctl_runschedule set start_time=now(),begin_status='started' where latest_runschedule_flag='1' and client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' and end_status is null "
##** Job and Step Loop; innner loop;
#while loop for each job & step
##** Job and Step Loop; innner loop; based on the entries on the table fw_jobctl_runschedule_jobstep
job_status=0
prev_job_seq=''
while IFS="|" read -a inner
do
client_id=${inner[0]}
function_id=${inner[1]}
run_frequency=${inner[2]}
job_name=${inner[4]}
step_name+=(${inner[5]})
job_script_type=${inner[6]}
job_step_script_name=${inner[7]}
#remove first and last char - curly braces
job_fun_param_array=${inner[8]:1:-1}
job_step_run_dependency_seuqence=${inner[9]}
param=''
var1=' '
#reading array column and spliting each var and appending $ & space
IFS=',' read -r -a ADDR <<< "$job_fun_param"
for i in "${ADDR[@]}"; do
echo $i
param=$param$i$var1
done
echo $param
#previous job_step_run_dependency_seuqence
#prev_job_seq=$job_step_run_dependency_seuqence
echo $prev_job_seq
echo "done1"
## Process java Program
if [[ $job_script_type == "java" ]]; then
echo " $job_step_script_name started"
psql $psql_base_arg -c "update fw_core.fw_jobctl_runschedule_jobstep set start_time=now(),begin_status='started' where job_step_script_name='$job_step_script_name' and client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' and latest_runschedule_flag='1' "
#java -jar /home/compegence/mmt_code/generic_table/target/ex1-1.0-SNAPSHOT-shaded.jar
java -jar $job_step_script_name
echo " $job_step_script_name Ended"
## Process sql files
elif [[ $job_script_type == "sql" ]] ; then
psql $psql_base_arg -c "update fw_core.fw_jobctl_runschedule_jobstep set start_time=now(),begin_status='started' where job_step_script_name='$job_step_script_name' and client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' and latest_runschedule_flag='1' "
chkrun=$(psql $psql_base_arg -t -c "select TRIM(end_status) from fw_core.fw_jobctl_runschedule_jobstep where latest_runschedule_flag='1' and job_step_run_dependency_seuqence=$prev_job_seq and client_id=21 and function_id=1;")
echo "chkrun is $chkrun"
echo "done"
if [[ "$chkrun" == " success" ]]; then
echo "job_function_name started"
psql $psql_base_arg -a -f $job_step_script_name $host $port $user $pwd $dbname $param $client_id $function_id $data_from_date $data_to_date $job_scope $job_scope_qualifier
else
echo "exit"
exit 1;
fi
echo " $job_step_script_name Ended"
## Process shell_script Program
elif [[ $job_script_type == "shell_script" ]] ; then
psql $psql_base_arg -c "update fw_core.fw_jobctl_runschedule_jobstep set start_time=now(),begin_status='started' where job_step_script_name='$job_step_script_name' and client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' and latest_runschedule_flag='1' "
chkrun=$(psql $psql_base_arg -t -c "select TRIM(end_status) from fw_core.fw_jobctl_runschedule_jobstep where latest_runschedule_flag='1' and job_step_run_dependency_seuqence=$prev_job_seq and client_id=21 and function_id=1;")
echo "chkrun is $chkrun"
if [ "$chkrun" == " success" ]; then
echo "$job_step_script_name started"
$job_step_script_name
retval=$?
echo $retval
#do_something $retval
if [ $retval -ne 0 ]; then
psql $psql_base_arg -c "update fw_core.fw_jobctl_runschedule_jobstep set end_time=now(),end_status='error',end_status_note='error in file moving' where job_step_script_name='$job_step_script_name' and client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' and latest_runschedule_flag='1' "
exit 1;
else
psql $psql_base_arg -c "update fw_core.fw_jobctl_runschedule_jobstep set end_time=now(),end_status='success',end_status_note='file moved' where job_step_script_name='$job_step_script_name' and client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' and latest_runschedule_flag='1' "
fi
echo "$job_step_script_name ended"
else
exit 1;
fi
## Process shell_script Program
elif [[ $job_script_type == "sql_fn" ]] ; then
psql $psql_base_arg -c "update fw_core.fw_jobctl_runschedule_jobstep set start_time=now(),begin_status='started' where job_step_script_name='$job_step_script_name' and client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' and latest_runschedule_flag='1' "
chkrun=$(psql $psql_base_arg -t -c "select TRIM(end_status) from fw_core.fw_jobctl_runschedule_jobstep where latest_runschedule_flag='1' and job_step_run_dependency_seuqence=$prev_job_seq and client_id=21 and function_id=1;")
echo "chkrun is $chkrun"
echo "done5"
if [ "$chkrun" == " success" ]; then
echo "$job_step_script_name started"
psql $psql_base_arg -c "select $job_step_script_name"
echo "$job_step_script_name ended"
else
exit 1;
fi
fi
prev_job_seq=$job_step_run_dependency_seuqence
echo $prev_job_seq
## End of While Loop
#2nd looping through fw_core.fw_jobctl_runschedule_jobstep for each client_id,function_id,run_frequency,run_schedule_id1 is completed
done < <(psql $psql_base_arg -At -c"select client_id,function_id,run_frequency,run_schedule_id,job_name,step_name,job_script_type,job_step_script_name,job_fun_param_array,job_step_run_dependency_seuqence from fw_core.fw_jobctl_runschedule_jobstep where latest_runschedule_flag='1' and client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' order by run_schedule_id,job_step_run_dependency_seuqence; ")
#Update end_time for fw_jobctl_runschedule
psql $psql_base_arg -c "update fw_core.fw_jobctl_runschedule set end_status='success',end_status_note='run_completed' ,latest_runschedule_flag='0',end_time=now() where client_id=$client_id and function_id=$function_id and run_frequency='$run_frequency' and latest_runschedule_flag='1' "
#1st loop for client_id,function_id,run_frequency
done < <(psql $psql_base_arg -At -c"select distinct client_id,function_id,run_frequency from fw_core.fw_jobctl_runschedule_jobstep where latest_runschedule_flag='1' order by client_id,function_id,run_frequency ")