X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-si%2Fserver%2Fevents%2Fdatabases.pm;h=9e057c8f1f80ab0215da1f294c6a7c2cfc5906be;hb=5e3764c723c327eb55969d7f6ccc902afb3f3793;hp=054d5eab0e22883f77f1eeef6fcbce0ee64b32c6;hpb=1e9aac8c6d6136391ca3238208022fa36b746da8;p=gosa.git diff --git a/gosa-si/server/events/databases.pm b/gosa-si/server/events/databases.pm index 054d5eab0..9e057c8f1 100644 --- a/gosa-si/server/events/databases.pm +++ b/gosa-si/server/events/databases.pm @@ -4,12 +4,16 @@ use Exporter; my @events = ( "get_events", "query_jobdb", - "query_packages_list", "count_jobdb", - "count_packages_list", "delete_jobdb_entry", "clear_jobdb", "update_status_jobdb_entry", + "query_packages_list", + "count_packages_list", + "query_fai_server", + "count_fai_server", + "query_fai_release", + "count_fai_release", ); @EXPORT = @events; @@ -17,7 +21,6 @@ use strict; use warnings; use GOSA::GosaSupportDaemon; use Data::Dumper; -use utf8; BEGIN {} @@ -31,7 +34,8 @@ sub get_events { return \@events; } - +sub query_fai_release{ return &query_db( @_ ); } +sub query_fai_server{ return &query_db( @_ ) ; } sub query_packages_list { return &query_db( @_ ) ; } sub query_jobdb { return &query_db( @_ ) ; } sub query_db { @@ -47,7 +51,14 @@ sub query_db { } elsif( $header =~ /query_packages_list/ ) { $table = $main::packages_list_tn; $db = $main::packages_list_db; + } elsif( $header =~ /query_fai_server/ ) { + $table = $main::fai_server_tn; + $db = $main::fai_server_db; + } elsif( $header =~ /query_fai_release/ ) { + $table = $main::fai_release_tn; + $db = $main::fai_release_db; } + # prepare sql statement and execute query my $select= &get_select_statement($msg, $msg_hash); @@ -58,11 +69,13 @@ sub query_db { my $res_hash = $db->select_dbentry($sql_statement); my $out_xml = &db_res2si_msg($res_hash, $header, $target, $source); + $out_xml =~ s/<\/xml>/$session_id<\/session_id><\/xml>/; my @out_msg_l = ( $out_xml ); return @out_msg_l; } - +sub count_fai_releas{ return &count_db( @_ ); } +sub count_fai_server{ return &count_db( @_ ); } sub count_packages_list{ return &count_db( @_ ); } sub count_jobdb{ return &count_db( @_ ); } sub count_db { @@ -72,19 +85,27 @@ sub count_db { my $source = @{$msg_hash->{'source'}}[0]; my $table; my $db; + if( $header =~ /count_jobdb/ ) { $table = $main::job_queue_tn; $db = $main::job_db; } elsif( $header =~ /count_packages_list/ ) { $table = $main::packages_list_tn; $db = $main::packages_list_db; + } elsif( $header =~ /count_fai_server/ ) { + $table = $main::fai_server_tn; + $db = $main::fai_server_db; + } elsif( $header =~ /count_fai_release/ ) { + $table = $main::fai_release_tn; + $db = $main::fai_server_db; } + # prepare sql statement and execute query my $res_hash = $db->select_dbentry("SELECT * FROM $table"); my $count = keys(%{$res_hash}); - my $out_xml= "
answer
$target$source$count
"; + my $out_xml= "
answer
$target$source$count$session_id
"; my @out_msg_l = ( $out_xml ); return @out_msg_l; } @@ -98,7 +119,7 @@ sub delete_jobdb_entry { my $table= $main::job_queue_tn; my $where= &get_where_statement($msg, $msg_hash); my $sql_statement = "DELETE FROM $table $where"; - + &main::daemon_log("$session_id DEBUG: $sql_statement",7); # execute db query my $db_res = $main::job_db->del_dbentry($sql_statement); @@ -110,7 +131,7 @@ sub delete_jobdb_entry { } # prepare xml answer - my $out_xml = "
answer
$target$source$res
"; + my $out_xml = "
answer
$target$source$res$session_id
"; my @out_msg_l = ( $out_xml ); return @out_msg_l; @@ -132,7 +153,7 @@ sub clear_jobdb { if( not $db_res > 0 ) { $error++; }; if( $error == 0 ) { - $out_xml = "
answer
$target$source0
"; + $out_xml = "
answer
$target$source0$session_id
"; } my @out_msg_l = ( $out_xml ); return @out_msg_l; @@ -145,7 +166,7 @@ sub update_status_jobdb_entry { my $source = @{$msg_hash->{'source'}}[0]; my $error= 0; - my $out_xml= "
answer
$target$source1
"; + my $out_xml= "
answer
$target$source1$session_id
"; my @len_hash = keys %{$msg_hash}; if( 0 == @len_hash) { $error++; }; @@ -158,7 +179,8 @@ sub update_status_jobdb_entry { # conditions # no timestamp update if status eq waiting - my $res_hash = $main::job_db->select_dbentry("SELECT * FROM $table $where AND status='processing' "); + my $sql_statement = "SELECT * FROM $table $where AND status='processing'"; + my $res_hash = $main::job_db->select_dbentry($sql_statement); if( (0 != keys(%$res_hash)) && ($update =~ /timestamp/i) ) { $error ++; $out_xml = "1there is no timestamp update allowed while status is 'processing'"; @@ -171,7 +193,6 @@ sub update_status_jobdb_entry { # check success of db update if( not $db_res > 0 ) { $error++; }; - } } @@ -179,7 +200,7 @@ sub update_status_jobdb_entry { $out_xml = "0"; } - my $out_msg = sprintf("
answer
%s%s%s
", $target, $source, $out_xml); + my $out_msg = sprintf("
answer
%s%s%s$session_id
", $target, $source, $out_xml); my @out_msg_l = ( $out_msg ); return @out_msg_l; }