Code

Fixed size calculations
[gosa.git] / gosa-si / modules / ServerPackages.pm
index 66184387d0749ccb33d2f1feb63a054ab9c3c447..bf4ac091b12ef38025b4a79eb89017d5567254b1 100644 (file)
@@ -1,14 +1,18 @@
 package ServerPackages;
 
-use Exporter;
-@ISA = ("Exporter");
+
 
 # Each module has to have a function 'process_incoming_msg'. This function works as a interface to gosa-sd and receives the msg hash from gosa-sd. 'process_incoming_function checks, wether it has a function to process the incoming msg and forward the msg to it. 
 
 use strict;
 use warnings;
-use GOSA::GosaSupportDaemon;
+
 use Data::Dumper;
+use GOsaSI::GosaSupportDaemon;
+
+use Exporter;
+
+our @ISA = ("Exporter");
 
 my $event_dir = "/usr/lib/gosa-si/server/ServerPackages";
 use lib "/usr/lib/gosa-si/server/ServerPackages";
@@ -23,17 +27,27 @@ END {}
 my ($error, $result, $event_hash) = &import_events($event_dir);
 foreach my $log_line (@$result) {
     if ($log_line =~ / succeed: /) {
-        &main::daemon_log("0 DEBUG: ServerPackages - $log_line", 7);
+        &main::daemon_log("0 INFO: ServerPackages - $log_line", 5);
     } else {
         &main::daemon_log("0 ERROR: ServerPackages - $log_line", 1);
     }
 }
 
+# build vice versa event_hash, event_name => module
+my $event2module_hash = {};
+while (my ($module, $mod_events) = each %$event_hash) {
+    while (my ($event_name, $nothing) = each %$mod_events) {
+        $event2module_hash->{$event_name} = $module;
+    }
+
+}
+
 ### FUNCTIONS #####################################################################
 
 sub get_module_info {
     my @info = ($main::server_address,
-            $main::ServerPackages_key,         
+            $main::ServerPackages_key, 
+            $event_hash,
             );
     return \@info;
 }
@@ -54,12 +68,12 @@ sub process_incoming_msg {
     $msg =~ s/<header>gosa_(\w+)<\/header>|<header>job_(\w+)<\/header>/<header>$1<\/header>/;
     
 
-    &main::daemon_log("$session_id DEBUG: ServerPackages: msg to process '$header'", 7);
-    if( exists $event_hash->{$header} ) {
+    &main::daemon_log("$session_id DEBUG: ServerPackages: msg to process '$header'", 26);
+    if( exists $event2module_hash->{$header} ) {
         # a event exists with the header as name
-        &main::daemon_log("$session_id INFO: found event '$header' at event-module '".$event_hash->{$header}."'", 5);
+        &main::daemon_log("$session_id INFO: found event '$header' at event-module '".$event2module_hash->{$header}."'", 26);
         no strict 'refs';
-        @out_msg_l = &{$event_hash->{$header}."::$header"}($msg, $msg_hash, $session_id);
+        @out_msg_l = &{$event2module_hash->{$header}."::$header"}($msg, $msg_hash, $session_id);
 
     } else {
         $sql_events = "SELECT * FROM $main::known_clients_tn WHERE ( (macaddress LIKE '$target') OR (hostname='$target') )"; 
@@ -107,4 +121,5 @@ sub process_incoming_msg {
     return \@out_msg_l;
 }
 
+
 1;