Code

cleanup daemon_log messages
authorrettenbe <rettenbe@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 21 Jan 2008 10:35:00 +0000 (10:35 +0000)
committerrettenbe <rettenbe@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 21 Jan 2008 10:35:00 +0000 (10:35 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@8514 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-si/gosa-si-server
gosa-si/modules/GosaPackages.pm
gosa-si/modules/ServerPackages.pm
gosa-si/tests/client.php

index 19fdc07d1f0725bc33dad6aa2c5e046ca5c1a825..351878bc6199f9107a3297ce2d34c318459df50c 100755 (executable)
@@ -394,239 +394,6 @@ sub create_known_client {
     return;  
 }
 
-#==== MAIN = main ==============================================================
-#  parse commandline options
-Getopt::Long::Configure( "bundling" );
-GetOptions("h|help" => \&usage,
-        "c|config=s" => \$cfg_file,
-        "f|foreground" => \$foreground,
-        "v|verbose+" => \$verbose,
-        "no-bus+" => \$no_bus,
-        "no-arp+" => \$no_arp,
-           );
-
-#  read and set config parameters
-&check_cmdline_param ;
-&read_configfile;
-&check_pid;
-
-$SIG{CHLD} = 'IGNORE';
-
-# forward error messages to logfile
-if( ! $foreground ) {
-    open(STDERR, '>>', $log_file);
-    open(STDOUT, '>>', $log_file);
-}
-
-# Just fork, if we are not in foreground mode
-if( ! $foreground ) { 
-    chdir '/'                 or die "Can't chdir to /: $!";
-    $pid = fork;
-    setsid                    or die "Can't start a new session: $!";
-    umask 0;
-} else { 
-    $pid = $$; 
-}
-
-# Do something useful - put our PID into the pid_file
-if( 0 != $pid ) {
-    open( LOCK_FILE, ">$pid_file" );
-    print LOCK_FILE "$pid\n";
-    close( LOCK_FILE );
-    if( !$foreground ) { 
-        exit( 0 ) 
-    };
-}
-
-daemon_log(" ", 1);
-daemon_log("$0 started!", 1);
-
-# delete old DBsqlite lock files
-system('rm -f /tmp/gosa_si_lock*');
-
-# connect to gosa-si job queue
-my @job_col_names = ("id", "timestamp", "status", "result", "headertag", "targettag", "xmlmessage", "macaddress");
-$job_db = GOSA::DBsqlite->new($job_queue_file_name);
-$job_db->create_table('jobs', \@job_col_names);
-
-# connect to known_clients_db
-my @clients_col_names = ('hostname', 'status', 'hostkey', 'timestamp', 'macaddress', 'events');
-$known_clients_db = GOSA::DBsqlite->new($known_clients_file_name);
-$known_clients_db->create_table('known_clients', \@clients_col_names);
-
-# connect to known_server_db
-my @server_col_names = ('hostname', 'status', 'hostkey', 'timestamp');
-$known_server_db = GOSA::DBsqlite->new($known_server_file_name);
-$known_server_db->create_table('known_server', \@server_col_names);
-
-# import all modules
-&import_modules;
-
-# check wether all modules are gosa-si valid passwd check
-
-# create reading and writing vectors
-my $rbits = my $wbits = my $ebits = "";
-
-# add all module inputs to listening vector
-# while( my ($mod_name, $info) = each %$known_modules ) {
-#     my ($input_address, $input_key, $input, $input_activ, $input_type) = @{$info};
-#     vec($rbits, fileno $input, 1) = 1;   
-# 
-# }
-
-
-## start arp fifo
-#if ($no_arp > 0) {
-#    $arp_activ = "off";
-#}
-#my $my_fifo;
-#if($arp_activ eq "on") {
-#    daemon_log(" ", 1);
-#    $my_fifo = &open_fifo($arp_fifo_path);
-#    if($my_fifo == 0) { die "fifo file disappeared\n" }
-#    sysopen($arp_fifo, $arp_fifo_path, O_RDWR) or die "can't read from $arp_fifo: $!" ;
-#    
-#    vec($rbits, fileno $arp_fifo, 1) = 1;
-#}
-#
-
-###################################
-##everything ready, okay, lets start
-###################################
-#while(1) {
-#
-#    # add all handles from the childs
-#    while ( my ($pid, $child_hash) = each %busy_child ) {
-#        
-#        # check whether process still exists
-#        my $exitus_pid = waitpid($pid, WNOHANG);
-#        if($exitus_pid != 0) {
-#            delete $busy_child{$pid};
-#            next;
-#        }
-#     
-#        # add child fhd to the listener    
-#        my $fhd = $$child_hash{'pipe_rd'};
-#        vec($rbits, fileno $fhd, 1) = 1;
-#    }
-#
-#    my ($rout, $wout);
-#    my $nf = select($rout=$rbits, $wout=$wbits, undef, $job_queue_timeout);
-#
-#    # error handling
-#    if($nf < 0 ) {
-#    }
-#
-#
-##    if($arp_activ eq "on" && vec($rout, fileno $arp_fifo, 1)) {
-##        my $in_msg = <$arp_fifo>;
-##        chomp($in_msg);
-##        print "arp_activ: msg: $in_msg\n";
-##        my $act_passwd = $known_daemons->{$bus_address}->{passwd};
-##        print "arp_activ: arp_passwd: $act_passwd\n";
-##
-##        my $in_msg_hash = $xml->XMLin($in_msg, ForceArray=>1);
-##
-##        my $target = &get_content_from_xml_hash($in_msg_hash, 'target');
-##
-##        if ($target eq $server_address) { 
-##             print "arp_activ: forward to server\n";
-##            my $arp_cipher = &create_ciphering($act_passwd);
-##            my $crypted_msg = &encrypt_msg($in_msg, $arp_cipher);
-##            &activating_child($crypted_msg, $server_ip);
-##        } else {
-##            print "arp_activ: send to bus\n";
-##            &send_msg_hash2address($in_msg_hash, $bus_address);
-##        }
-##        print "\n";
-##    }
-#
-#
-#    # check input fhd of all modules 
-#    while ( my ($mod_name, $info) = each %$known_modules) {
-#        my $input_fhd = @{$info}[2];    
-#        my $input_activ = @{$info}[3];
-#        if (vec($rout, fileno $input_fhd, 1) && $input_activ eq 'on') {
-#            daemon_log(" ", 1);
-#            my $client = $input_fhd->accept();
-#            my $other_end = getpeername($client);
-#            if(not defined $other_end) {
-#                daemon_log("client cannot be identified: $!");
-#            } else {
-#                my ($port, $iaddr) = unpack_sockaddr_in($other_end);
-#                my $actual_ip = inet_ntoa($iaddr);
-#                daemon_log("accept client at daemon socket from $actual_ip", 5);
-#                my $in_msg = &read_from_socket($client);
-#                if(defined $in_msg){
-#                    chomp($in_msg);
-#                    &activating_child($in_msg, $actual_ip, $client);
-#                } else {
-#                    daemon_log("cannot read from $actual_ip", 5);
-#                }
-#            }
-#        }
-#    }
-#
-#    # check all processing childs whether they are finished ('done') or 
-#    while ( my ($pid, $child_hash) = each %busy_child ) {
-#        my $fhd = $$child_hash{'pipe_rd'};
-#
-#        if (vec($rout, fileno $fhd, 1) ) {
-#            daemon_log("process child $pid is ready to read", 5);
-# 
-#            my $in_msg;
-#            while (1) {
-#                my $part_in_msg = <$fhd>;
-#                if( $part_in_msg eq "ENDMESSAGE\n") {
-#                    last;
-#                }
-#                $in_msg .= $part_in_msg;
-#            }
-#            chomp($in_msg);
-#            
-#            if (not defined $in_msg) { 
-#                next; 
-#            } elsif ($in_msg =~ "done") {
-#                daemon_log("process child read: $in_msg", 7);
-#                delete $busy_child{$pid};
-#                $free_child{$pid} = $child_hash;
-#
-#            } else {
-#                daemon_log("process child read:", 7);
-#                daemon_log("\n$in_msg", 8);
-#                # send computed answer back to connected client
-#                my $act_client = $busy_child{$pid}{client_ref};
-#                print $act_client $in_msg."\n";
-#                delete $busy_child{$pid};
-#                $free_child{$pid} = $child_hash;
-#
-#            }
-#        }
-#    }
-#
-#
-#    }  
-#
-#
-#}
-
-POE::Session->create
-(
-       inline_states => {
-               _start => \&trigger_db_loop,
-               watch_for_new_jobs => \&watch_for_new_jobs,
-       }
-);
-
-POE::Component::Server::TCP->new
-(
-       Port => $server_port,
-       ClientInput => \&client_input,
-);
-
-POE::Kernel->run();
-exit;
-
 sub client_input {
        my ($heap,$input,$wheel) = @_[HEAP, ARG0, ARG1];
        ######################################
@@ -640,7 +407,7 @@ sub client_input {
                if (defined $tmp) {
                        $answer = $tmp;
                }
-               daemon_log("Got answer from module ".$module.": ".$answer,3);
+               daemon_log("Got answer from module ".$module.": ".$answer,8);
        }        
        daemon_log("processing of msg finished", 5);
 
@@ -660,16 +427,17 @@ sub watch_for_new_jobs {
        my ($kernel,$heap) = @_[KERNEL, HEAP];
 
        # check gosa job queue for jobs with executable timestamp
-       my ($seconds, $minutes, $hours, $monthday, $month,
-               $year, $weekday, $yearday, $sommertime) = localtime(time);
-       $hours = $hours < 10 ? $hours = "0".$hours : $hours;
-       $minutes = $minutes < 10 ? $minutes = "0".$minutes : $minutes;
-       $seconds = $seconds < 10 ? $seconds = "0".$seconds : $seconds;
-       $month+=1;
-       $month = $month < 10 ? $month = "0".$month : $month;
-       $monthday = $monthday < 10 ? $monthday = "0".$monthday : $monthday;
-       $year+=1900;
-       my $timestamp = "$year$month$monthday$hours$minutes$seconds";
+#      my ($seconds, $minutes, $hours, $monthday, $month,
+#              $year, $weekday, $yearday, $sommertime) = localtime(time);
+#      $hours = $hours < 10 ? $hours = "0".$hours : $hours;
+#      $minutes = $minutes < 10 ? $minutes = "0".$minutes : $minutes;
+#      $seconds = $seconds < 10 ? $seconds = "0".$seconds : $seconds;
+#      $month+=1;
+#      $month = $month < 10 ? $month = "0".$month : $month;
+#      $monthday = $monthday < 10 ? $monthday = "0".$monthday : $monthday;
+#      $year+=1900;
+#      my $timestamp = "$year$month$monthday$hours$minutes$seconds";
+    my $timestamp = &get_time();
 
        my $res = $job_db->select_dbentry( { table=>$job_queue_table_name, status=>'waiting', timestamp=>$timestamp  } );
 
@@ -729,3 +497,96 @@ sub watch_for_new_jobs {
 
        $kernel->delay_set('watch_for_new_jobs',3);
 }
+
+
+#==== MAIN = main ==============================================================
+#  parse commandline options
+Getopt::Long::Configure( "bundling" );
+GetOptions("h|help" => \&usage,
+        "c|config=s" => \$cfg_file,
+        "f|foreground" => \$foreground,
+        "v|verbose+" => \$verbose,
+        "no-bus+" => \$no_bus,
+        "no-arp+" => \$no_arp,
+           );
+
+#  read and set config parameters
+&check_cmdline_param ;
+&read_configfile;
+&check_pid;
+
+$SIG{CHLD} = 'IGNORE';
+
+# forward error messages to logfile
+if( ! $foreground ) {
+    open(STDERR, '>>', $log_file);
+    open(STDOUT, '>>', $log_file);
+}
+
+# Just fork, if we are not in foreground mode
+if( ! $foreground ) { 
+    chdir '/'                 or die "Can't chdir to /: $!";
+    $pid = fork;
+    setsid                    or die "Can't start a new session: $!";
+    umask 0;
+} else { 
+    $pid = $$; 
+}
+
+# Do something useful - put our PID into the pid_file
+if( 0 != $pid ) {
+    open( LOCK_FILE, ">$pid_file" );
+    print LOCK_FILE "$pid\n";
+    close( LOCK_FILE );
+    if( !$foreground ) { 
+        exit( 0 ) 
+    };
+}
+
+daemon_log(" ", 1);
+daemon_log("$0 started!", 1);
+
+# delete old DBsqlite lock files
+system('rm -f /tmp/gosa_si_lock*');
+
+# connect to gosa-si job queue
+my @job_col_names = ("id", "timestamp", "status", "result", "headertag", "targettag", "xmlmessage", "macaddress");
+$job_db = GOSA::DBsqlite->new($job_queue_file_name);
+$job_db->create_table('jobs', \@job_col_names);
+
+# connect to known_clients_db
+my @clients_col_names = ('hostname', 'status', 'hostkey', 'timestamp', 'macaddress', 'events');
+$known_clients_db = GOSA::DBsqlite->new($known_clients_file_name);
+$known_clients_db->create_table('known_clients', \@clients_col_names);
+
+# connect to known_server_db
+my @server_col_names = ('hostname', 'status', 'hostkey', 'timestamp');
+$known_server_db = GOSA::DBsqlite->new($known_server_file_name);
+$known_server_db->create_table('known_server', \@server_col_names);
+
+# import all modules
+&import_modules;
+
+# check wether all modules are gosa-si valid passwd check
+
+# create session for repeatedly checking the job queue for jobs
+POE::Session->create
+(
+       inline_states => {
+               _start => \&trigger_db_loop,
+               watch_for_new_jobs => \&watch_for_new_jobs,
+       }
+);
+
+# create socket for incoming xml messages
+POE::Component::Server::TCP->new
+(
+       Port => $server_port,
+       ClientInput => \&client_input,
+);
+daemon_log("start socket for incoming xml messages at port '$server_port' ", 1);
+
+POE::Kernel->run();
+exit;
+
+
index 86895caeb87fec22785faef0ee863a23322b0af9..94714e384c3181b081a9093ec0523c9b7f5c8249 100644 (file)
@@ -66,29 +66,6 @@ my $gosa_address = "$gosa_ip:$gosa_port";
 my $gosa_cipher = &create_ciphering($gosa_passwd);
 my $xml = new XML::Simple();
 
-# open gosa socket
-if ($gosa_activ eq "on") {
-    &main::daemon_log(" ",1);
-    $gosa_server = IO::Socket::INET->new(LocalPort => $gosa_port,
-            Type => SOCK_STREAM,
-            Reuse => 1,
-            Listen => 1,
-            );
-    if (not defined $gosa_server) {
-        &main::daemon_log("cannot start tcp server at $gosa_port for communication to gosa: $@", 1);
-        die;
-    } else {
-        &main::daemon_log("start server for communication to gosa: $gosa_address", 1);
-        
-    }
-}
-
-# create gosa job queue as a SQLite DB 
-my $table_name = "jobs";
-my $sqlite = GOSA::DBsqlite->new($job_queue_file_name);
-
-
-
 
 ## FUNCTIONS #################################################################
 
@@ -283,7 +260,7 @@ sub open_socket {
 #===============================================================================
 sub process_incoming_msg {
     my ($crypted_msg) = @_ ;
-       &main::daemon_log("Got message $crypted_msg", 5);
+       &main::daemon_log("Got message $crypted_msg", 8);
        if( (not(defined($crypted_msg))) || (length($crypted_msg) <= 0)) {
         &main::daemon_log("function 'process_incoming_msg': got no msg", 7);
         return;
@@ -305,7 +282,7 @@ sub process_incoming_msg {
     my $msg_hash;
     eval{
         $msg = &decrypt_msg($crypted_msg, $gosa_cipher);
-        &main::daemon_log("GosaPackages: decrypted_msg: \n$msg", 7);
+        &main::daemon_log("GosaPackages: decrypted_msg: \n$msg", 8);
 
         $msg_hash = $xml->XMLin($msg, ForceArray=>1);
     };
index 95baac87a96e80b43e082d425ce4d92e42c3c7f1..cb7c976f95d75ca3a8d34a9fe36ce37c891d6f4d 100644 (file)
@@ -58,9 +58,6 @@ my %cfg_defaults =
 $network_interface= &get_interface_for_ip($server_ip);
 $server_mac_address= &get_mac($network_interface); 
 
-&main::daemon_log("server ip address detected: $server_ip", 1);
-&main::daemon_log("server mac address detected: $server_mac_address", 1);
-
 # complete addresses
 my $server_address = "$server_ip:$server_port";
 my $bus_address = "$bus_ip:$bus_port";
@@ -68,31 +65,13 @@ my $bus_address = "$bus_ip:$bus_port";
 # create general settings for this module
 my $xml = new XML::Simple();
 
-## open server socket
-#if($server_activ eq "on"){
-#    &main::daemon_log(" ", 1);
-#    $server = IO::Socket::INET->new(LocalPort => $server_port,
-#            Type => SOCK_STREAM,
-#            Reuse => 1,
-#            Listen => 20,
-#            ); 
-#    if(not defined $server){
-#        &main::daemon_log("cannot be a tcp server at $server_port : $@");
-#        die;
-#    } else {
-#        &main::daemon_log("start server: $server_address", 1);
-#    }
-#}
-#
-#
-## register at bus
-#if ($main::no_bus > 0) {
-#    $bus_activ = "off"
-#}
-#if($bus_activ eq "on") {
-#    &main::daemon_log(" ", 1);
-#    &register_at_bus();
-#}
+# register at bus
+if ($main::no_bus > 0) {
+    $bus_activ = "off"
+}
+if($bus_activ eq "on") {
+    &register_at_bus();
+}
 
 ### functions #################################################################
 
@@ -437,7 +416,7 @@ sub process_incoming_msg {
 
     if( not defined $msg ) {
         &main::daemon_log("WARNING: ServerPackage do not understand the message:", 5);
-        &main::daemon_log("$@", 7);
+        &main::daemon_log("$@", 8);
         return;
     }
 
index 8c715148dbc8d0204709d066291129ac5ad32580..a673db58c14eb1dbe62322f6e774a0914d8cf680 100755 (executable)
@@ -4,7 +4,7 @@
 require_once("../../gosa-core/include/class_socketClient.inc");
 error_reporting(E_ALL);
 
-$sock = new Socket_Client("127.0.0.1","20082",TRUE,1);
+$sock = new Socket_Client("127.0.0.1","20081",TRUE,1);
 #$sock = new Socket_Client("169.254.2.248","9999",TRUE,1);
 $sock->setEncryptionKey("secret-gosa-password");