diff --git a/trunk/gosa-si/server/events/gosaTriggered.pm b/trunk/gosa-si/server/events/gosaTriggered.pm
index 73a4e95b6a3986958f09de48f9e4b1995eae05f5..f72d5798b68e3aa4ee9dda053a0c627c0ec97421 100644 (file)
my $res = $main::job_db->exec_statement($sql_statement);
}
- $main::fai_server_db->create_table("new_fai_server", \@main::fai_server_col_names);
+ my $res = $main::fai_server_db->create_table("new_fai_server", \@main::fai_server_col_names);
+ if ($res) {
+ return ( $out_msg );
+ }
&main::create_fai_server_db("new_fai_server",undef,"dont", $session_id);
$main::fai_server_db->move_table("new_fai_server", $main::fai_server_tn);
-
- my @out_msg_l = ( $out_msg );
- return @out_msg_l;
+
+ return ( $out_msg );
}
my $res = $main::job_db->exec_statement($sql_statement);
}
- $main::fai_release_db->create_table("new_fai_release", \@main::fai_release_col_names);
+ my $res = $main::fai_release_db->create_table("new_fai_release", \@main::fai_release_col_names);
+ if ($res) {
+ return ( $out_msg );
+ }
&main::create_fai_release_db("new_fai_release", $session_id);
$main::fai_release_db->move_table("new_fai_release", $main::fai_release_tn);
- my @out_msg_l = ( $out_msg );
- return @out_msg_l;
+ return ( $out_msg );
}
my $res = $main::job_db->exec_statement($sql_statement);
}
- &main::create_packages_list_db;
+ &main::create_packages_list_db(undef, undef, $session_id);
my @out_msg_l = ( $out_msg );
return @out_msg_l;
$msg =~ s/<header>gosa_trigger_action_reinstall<\/header>/<header>trigger_action_reinstall<\/header>/;
&main::change_fai_state('reinstall', \@{$msg_hash->{macaddress}}, $session_id);
+ &main::change_goto_state('active', \@{$msg_hash->{macaddress}}, $session_id);
+ my @out_msg_l = &set_activated_for_installation($msg, $msg_hash, $session_id);
my %data = ( 'macaddress' => \@{$msg_hash->{macaddress}} );
my $wake_msg = &build_msg("trigger_wake", "GOSA", "KNOWN_SERVER", \%data);
# invoke trigger wake for this gosa-si-server
&main::server_server_com::trigger_wake($msg, $msg_hash, $session_id);
- my @out_msg_l = ($wake_msg, $msg);
+ push(@out_msg_l, $wake_msg);
+ push(@out_msg_l, $msg);
return @out_msg_l;
}
);
if($ldap_mesg->count == 1) {
$ogroup_entry= $ldap_mesg->pop_entry();
+ &main::daemon_log("$session_id DEBUG: A GosaGroupOfNames with cn '$ogroup' was found in base '".$main::ldap_base."'!", 5);
} elsif ($ldap_mesg->count == 0) {
&main::daemon_log("$session_id ERROR: A GosaGroupOfNames with cn '$ogroup' was not found in base '".$main::ldap_base."'!", 1);
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting' WHERE id = $jobdb_id");
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET timestamp = '".(&calc_timestamp(&get_time(), 'plus', 10))."' WHERE id = $jobdb_id");
+ $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting', timestamp = '".(&calc_timestamp(&get_time(), 'plus', 60))."' WHERE id = $jobdb_id");
return undef;
} else {
&main::daemon_log("$session_id ERROR: More than one ObjectGroups with cn '$ogroup' was found in base '".$main::ldap_base."'!", 1);
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting' WHERE id = $jobdb_id");
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET timestamp = '".(&calc_timestamp(&get_time(), 'plus', 10))."' WHERE id = $jobdb_id");
+ $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting', timestamp = '".(&calc_timestamp(&get_time(), 'plus', 60))."' WHERE id = $jobdb_id");
return undef;
}
return undef;
} else {
&main::daemon_log("$session_id INFO: System with mac address '$mac' was moved to base '".$main::ldap_base."'! Re-queuing job.", 4);
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting' WHERE id = $jobdb_id");
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET timestamp = '".(&calc_timestamp(&get_time(), 'plus', 10))."' WHERE id = $jobdb_id");
+ $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting', timestamp = '".(&calc_timestamp(&get_time(), 'plus', 10))."' WHERE id = $jobdb_id");
return undef;
}
}
my $oclass_result = $ldap_entry->update($ldap_handle);
if ($oclass_result->code() != 0) {
&main::daemon_log("$session_id ERROR: Adding the ObjectClass '$oclass' failed (code '".$oclass_result->code()."') with '".$oclass_result->{'errorMessage'}."'!", 1);
+ } else {
+ &main::daemon_log("$session_id DEBUG: Adding the ObjectClass '$oclass' to '".($ldap_entry->dn())."' succeeded!", 5);
}
}
}
my $replace_result = $ldap_entry->update($ldap_handle);
if ($replace_result->code() != 0) {
&main::daemon_log("$session_id ERROR: Setting the FAIstate to install failed with code '".$replace_result->code()."') and message '".$replace_result->{'errorMessage'}."'!", 1);
+ } else {
+ &main::daemon_log("$session_id DEBUG: Setting the FAIstate to install for '".($ldap_entry->dn())."' succeeded!", 5);
}
}
} else {
my $add_result = $ldap_entry->update($ldap_handle);
if ($add_result->code() != 0) {
&main::daemon_log("$session_id ERROR: Setting the FAIstate to install failed with code '".$add_result->code()."') and message '".$add_result->{'errorMessage'}."'!", 1);
+ } else {
+ &main::daemon_log("$session_id DEBUG: Setting the FAIstate to install for '".($ldap_entry->dn())."' succeeded!", 5);
}
}
# $ldap_entry = Net::LDAP::Entry->new();
# $ldap_entry->dn("cn=$mac,$base");
&main::daemon_log("$session_id WARNING: No System with mac address '$mac' was found in base '".$main::ldap_base."'! Re-queuing job.", 4);
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting' WHERE id = $jobdb_id");
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET timestamp = '".(&calc_timestamp(&get_time(), 'plus', 10))."' WHERE id = $jobdb_id");
+ $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting', timestamp = '".(&calc_timestamp(&get_time(), 'plus', 60))."' WHERE id = $jobdb_id");
return undef;
} else {
&main::daemon_log("$session_id ERROR: More than one system with mac address '$mac' was found in base '".$main::ldap_base."'!", 1);
my $ogroup_result = $ogroup_entry->update($ldap_handle);
if ($ogroup_result->code() != 0) {
&main::daemon_log("$session_id ERROR: Updating the ObjectGroup '$ogroup' failed (code '".$ogroup_result->code()."') with '".$ogroup_result->{'errorMessage'}."'!", 1);
+ } else {
+ &main::daemon_log("$session_id DEBUG: Updating the ObjectGroup '$ogroup' for member '".($ldap_entry->dn())."' succeeded!", 5);
}
} else {
&main::daemon_log("$session_id DEBUG: System with mac address '$mac' is already a member of ObjectGroup '$ogroup'.", 5);
if ($activate_result->code() != 0) {
&main::daemon_log("$session_id ERROR: Activating system '".$ldap_entry->dn()."' failed (code '".$activate_result->code()."') with '".$activate_result->{'errorMessage'}."'!", 1);
} else {
+ &main::daemon_log("$session_id DEBUG: Activating system '".$ldap_entry->dn()."' succeeded!", 5);
$activate_client = 1;
}
} else {
if ($activate_result->code() != 0) {
&main::daemon_log("$session_id ERROR: Activating system '".$ldap_entry->dn()."' failed (code '".$activate_result->code()."') with '".$activate_result->{'errorMessage'}."'!", 1);
} else {
+ &main::daemon_log("$session_id DEBUG: Activating system '".$ldap_entry->dn()."' succeeded!", 5);
$activate_client = 1;
}
}
if($activate_client == 1) {
+ &main::daemon_log("$session_id DEBIG: Activating system with mac address '$mac'!", 5);
# Create delivery list
my @out_msg_l;
# Set job to done
$main::job_db->exec_statement("UPDATE jobs SET status = 'done' WHERE id = $jobdb_id");
+
+ # If a client gets a 'set_activated_for_installation' msg, always deliver a fresh 'new_ldap_config'
+ # just for backup and robustness purposes
+ my $ldap_out_msg = &ClientPackages::new_ldap_config($mac, $session_id);
+ push(@out_msg_l, $ldap_out_msg);
# create set_activated_for_installation message for delivery
my $out_hash = &create_xml_hash("set_activated_for_installation", $source, $target);
# Return delivery list of messages
return @out_msg_l;
- } else {
+ } else {
&main::daemon_log("$session_id WARNING: Activating system with mac address '$mac' failed! Re-queuing job.", 4);
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting' WHERE id = $jobdb_id");
- $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET timestamp = '".(&calc_timestamp(&get_time(), 'plus', 10))."' WHERE id = $jobdb_id");
+ $main::job_db->exec_statement("UPDATE ".$main::job_queue_tn." SET status = 'waiting', timestamp = '".(&calc_timestamp(&get_time(), 'plus', 60))."' WHERE id = $jobdb_id");
}
return undef;
}