stta/stta/tmp/t/tarantella/monitor.pl
2021-10-01 20:35:43 +01:00

186 lines
5.7 KiB
Perl
Executable File

#!/usr/bin/perl
$task_type = $ARGV[0];
if ( $task_type ne "auto" && $task_type ne "task" ) {
print "Monitor: \"$task_type\" unknown option task \n";
print "monitor [auto|task]\n";
exit 1;
};
# where is config file for parameters .... (same as Webmin)
$config_directory="/etc/webmin/tarantella";
$debug=2; # if 0 it will try to get config file value
require './monitor-lib.pl';
$tta_logfile=$ENV{'TTA_LOGFILE'};
$default_lang = "en";
$current_lang = "es";
$module_name = "tarantella";
&initialize();
%text = &load_language();
$rule_limit=$config{cache_rulelimit};
$default_obj="cn=$config{ldapcache_defaultobj}";
$default_dnobj="$config{ldapcache_dndefaultobj}";
$chek_default=$config{cache_chkdefaults};
$has_monitor=$config{has_monitor};
if ($has_monitor ne true ) { exit } ;
$mon_scripts=$config{monitor_scripts_path};
$act_list=$config{act_list};
$mon_scripts_title=$config{mon_title};
$run_exec_user=$config{run_exec_user};
$UserName=$ENV{'TTA_UserName'};
#$ens_base=$config{'ens_base'}.$config{'tta_base'};
#$UserName=~s/$config{'tta_ldapUser'}//;
#$UserName=~s/,$config{'ldap_base'}//;
#$UserName=~s/$config{'ens_base'}//;
#$AppName=~s/$ens_base\///;
$nowTime=`date +%H%M%S`;
$nowDate=`date +%d%m%y`;
#if ( $debug eq 2 ) { print "$nowDate $nowTime \n"; }
# Load actions list ....
# Is there anything to look at ????
# As $task_type is already defined ... only task_type will be included in hash ...
@all_actions=&list_actions();
$sort_on="how";
@actions = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_actions;
# Loading TTA Sessions ...
$temp_f=$config{'tta_sessout_file'};
# $str=`(tta emulatorsession list >$temp_f) 2>/dev/null`;
$temp_f="/tmp/emu-tta2";
&load_tta_sess_info();
# unlink($temp_f);
if ($#all_ttasess < 0) {
print " ->".$text{msg_1}."\n";
exit 1;
}
$sort_on="pe_id";
$sort_on="application";
$sort_on="user";
$sort_on="startTime";
$sort_on="resume";
$sort_on="status";
$sort_on="applicationServer";
$sort_on="client";
$sort_on="serverUser";
$sort_on="user";
@ttasess = sort {$a->{$sort_on} cmp $b->{$sort_on}} @all_ttasess;
foreach $ttasess (@ttasess) {
$UserName=$ttasess->{'user'};
$AppName=$ttasess->{'application'};
$HostName=$ttasess->{'applicationServer'};
&scan_envsess();
&alias_envsess();
&setcount_envsess();
$pe_ID=$ttasess->{'pe_id'};
# print "" . $ttasess->{'id'}."";
print "$pe_ID";
print "$NameUser ($OuName) $userType";
print "" . $ttasess->{'client'}."";
print "$NameApp";
if ( $NameAppGrp.length ne 0 ) { print " ($NameAppGrp)"; }
print "" . $ttasess->{'startTime'}."";
print "" . $ttasess->{'resume'}."n";
print "" . $ttasess->{'status'}."";
print "$NameHost";
if ( $NameHostGrp.length ne 0 ) { print " ($NameHostGrp)"; }
print "" . $ttasess->{'serverUser'}."\n";
if ( $debug gt 0 ) { &print_emulses(); }
}
&sum_grp_sess();
foreach $countsess (@count_sess) {
print "->".$countsess->{'name'}."##".$countsess->{'objalias'}.
"##".$countsess->{'obj'}.
"##".$countsess->{'objgrpalias'}."## =".$countsess->{'num'}."\n";
}
exit 1;
# Processing actions ...
# mon_actions_value=run-script,logout,cancel-old-resume
@l_actions = split(/,/,$text{'mon_actions_value'}, -1);
# mon_target_value=user,ou,host,grphosts,app,grpapps,date,time
@l_targets = split(/,/,$text{'mon_target_value'}, -1);
# mon_conditions_value=gt,lt,eq,ne,noactive,disconnected
@l_conditions = split(/,/,$text{'mon_conditions_value'}, -1);
# mon_how_value=manual,auto,task
@l_how = split(/,/,$text{'mon_how_value'}, -1);
# foreach $item (@l_target) {
# if ( $item eq $monTarget ) {
# $targetext='mon_'.$item.'_sess';
# $t_monTarget=$text{$targetext};
# last;
# }
# }
# .......................
&scan_env();
if ( $debug gt 0 ) { &print_results(); };
&out_empty_data; # just in case
for ( $i=1 ; $i< $rule_limit+1; $i++ ) {
$obj=eval("\$config{cacherule_$i}");
if ( "$obj" eq "apps" ) { $dn="ou=$NameApp,$NameAppGrp,$config{ldapcache_base}"; }
if ( "$obj" eq "grpapps" ) { $dn="$NameAppGrp,$config{ldapcache_base}"; }
if ( "$obj" eq "hosts" ) {
if ("$NameAppGrp" eq "$NameHostGrp" ) {
$dn="$NameHostGrp,$config{ldapcache_base}";
} else {
$dn="ou=$NameHost,$NameHostGrp,$config{ldapcache_base}";
}
}
if ( "$obj" eq "grphosts" ) { $dn="$NameHostGrp,$config{ldapcache_base}"; }
if ( "$obj" eq "domains" ) { $dn="ou=$NameDomain,$config{ldapcache_base}"; }
$dn=~s/cn=/ou=/g;
# Trying Username
$dn_obj="cn=$NameUser,$OuName,$dn";
if ( $debug eq 2 ) { print DebugLog "($i) $obj -- $dn_obj \n" };
$entry = $conncache->browse ($dn_obj);
if ( $entry ) { &outData ; $i=$rule_limit+1}
# Trying default_obj for UserOU
if ( "$chek_default" eq "true" ) {
$dn_obj="$default_obj,$OuName,$dn";
if ( $debug eq 2 ) { print DebugLog "($i) $obj -- $dn_obj \n" };
$entry = $conncache->browse ($dn_obj);
if ( $entry ) { &outData ; $i=$rule_limit+1}
}
# Trying $dn (OBJECT) default_obj
if ( "$chek_default" eq "true" ) {
$dn_obj="$default_obj,$dn";
if ( $debug eq 2 ) { print DebugLog "($i) $obj -- $dn_obj \n" };
$entry = $conncache->browse ($dn_obj);
if ( $entry ) { &outData ; $i=$rule_limit+1}
}
}
if ( $debug gt 0 ) { &endclose_debug(); }
exit;