Code

Updated to generate autonetwork conf
[gosa.git] / gosa-si / server / events / gosaTriggered.pm
1 package gosaTriggered;
2 use Exporter;
3 @ISA = qw(Exporter);
4 my @events = (
5     "get_events", 
6     "ping",
7     "network_completition",
8     "set_activated_for_installation",
9     "new_key_for_client",
10     "detect_hardware",
11     "trigger_action_localboot",
12     "trigger_action_reboot",
13     "trigger_action_halt",
14     "trigger_action_update", 
15     "trigger_action_reinstall",
16     "trigger_action_memcheck", 
17     "trigger_action_sysinfo",
18     "trigger_action_instant_update",
19     "trigger_action_rescan",
20     );
21 @EXPORT = @events;
23 use strict;
24 use warnings;
25 use GOSA::GosaSupportDaemon;
26 use Net::ARP;
27 use Net::Ping;
28 use Socket;
31 BEGIN {}
33 END {}
35 ### Start ######################################################################
37 #&main::read_configfile($main::cfg_file, %cfg_defaults);
39 sub get_events {
40     return \@events;
41 }
43 sub ping {
44      my ($msg, $msg_hash, $session_id) = @_ ;
45      my $source = @{$msg_hash->{source}}[0];
46      my $target = @{$msg_hash->{target}}[0];
47      my $out_hash =  &create_xml_hash("ping", $source, $target);
48      &add_content2xml_hash($out_hash, "session_id", $session_id);
49      my $out_msg = &create_xml_string($out_hash);
50     
51      return ( $out_msg );
52 }
54 sub network_completition {
55      my ($msg, $msg_hash, $session_id) = @_ ;
56      my $source = @{$msg_hash->{source}}[0];
57      my $target = @{$msg_hash->{target}}[0];
58      my $name = @{$msg_hash->{hostname}}[0];
60      # Can we resolv the name?
61      my %data;
62      if (inet_aton($name)){
63              my $address = inet_ntoa(inet_aton($name));
64              my $p = Net::Ping->new('tcp');
65              my $mac= "";
66              if ($p->ping($address, 1)){
67                $mac = Net::ARP::arp_lookup("", $address);
68              }
70              %data= ('ip' => $address, 'mac' => $mac);
71      } else {
72              %data= ('ip' => '', 'mac' => '');
73      }
75      my $out_msg = &build_msg("network_completition", $target, 'GOSA', \%data );
76     
77      return ( $out_msg );
78 }
80 sub detect_hardware {
81     my ($msg, $msg_hash) = @_ ;
82     # just forward msg to client, but dont forget to split off 'gosa_' in header
83     my $header = @{$msg_hash->{header}}[0];
84     my $source = @{$msg_hash->{source}}[0];
85     my $target = @{$msg_hash->{target}}[0];
87     my $out_hash = &create_xml_hash("detect_hardware", $source, $target);
88     my $out_msg = &create_xml_string($out_hash);
90     return ( $out_msg );
91 }
94 sub set_activated_for_installation {
95     my ($msg, $msg_hash) = @_;
97     my $header = @{$msg_hash->{header}}[0];
98     my $source = @{$msg_hash->{source}}[0];
99     my $target = @{$msg_hash->{target}}[0];
101     my $out_hash = &create_xml_hash("set_activated_for_installation", $source, $target);
102     my $out_msg = &create_xml_string($out_hash);
104     return ( $out_msg );
107 sub trigger_action_localboot {
108     my ($msg, $msg_hash) = @_;
109     $msg =~ s/<header>gosa_trigger_action_localboot<\/header>/<header>trigger_action_localboot<\/header>/;
111     return ( $msg );
114 sub trigger_action_halt {
115     my ($msg, $msg_hash) = @_;
116     $msg =~ s/<header>gosa_trigger_action_halt<\/header>/<header>trigger_action_halt<\/header>/;
117     return ( $msg );
121 sub trigger_action_reboot {
122     my ($msg, $msg_hash) = @_;
123     $msg =~ s/<header>gosa_trigger_action_reboot<\/header>/<header>trigger_action_reboot<\/header>/;
124     return ( $msg );
128 sub trigger_action_memcheck {
129     my ($msg, $msg_hash) = @_ ;
130     $msg =~ s/<header>gosa_trigger_action_memcheck<\/header>/<header>trigger_action_memcheck<\/header>/;
131     return ( $msg );
135 sub trigger_action_reinstall {
136     my ($msg, $msg_hash) = @_;
137     $msg =~ s/<header>gosa_trigger_action_reinstall<\/header>/<header>trigger_action_reinstall<\/header>/;
138     return ( $msg );
142 sub trigger_action_update {
143     my ($msg, $msg_hash) = @_;
144     $msg =~ s/<header>gosa_trigger_action_update<\/header>/<header>trigger_action_update<\/header>/;
145     return ( $msg );
149 sub trigger_action_instant_update {
150     my ($msg, $msg_hash) = @_;
151     $msg =~ s/<header>gosa_trigger_action_instant_update<\/header>/<header>trigger_action_instant_update<\/header>/;
152     return ( $msg );
156 sub trigger_action_sysinfo {
157     my ($msg, $msg_hash) = @_;
158     $msg =~ s/<header>gosa_trigger_action_sysinfo<\/header>/<header>trigger_action_sysinfo<\/header>/;
159     return ( $msg );
164 sub new_key_for_client {
165     my ($msg, $msg_hash) = @_;
166     $msg =~ s/<header>gosa_new_key_for_client<\/header>/<header>new_key<\/header>/;
167     return ( $msg );
170 sub trigger_action_rescan {
171     my ($msg, $msg_hash) = @_;
172     $msg =~ s/<header>gosa_trigger_action_rescan<\/header>/<header>trigger_action_rescan<\/header>/;
173     return ( $msg );
176 1;