diff options
Diffstat (limited to 'mgaonline_agent.pl')
-rwxr-xr-x | mgaonline_agent.pl | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/mgaonline_agent.pl b/mgaonline_agent.pl new file mode 100755 index 00000000..bd687a36 --- /dev/null +++ b/mgaonline_agent.pl @@ -0,0 +1,78 @@ +#!/usr/bin/perl -w +################################################################################ +# mdvonline_agent # +# # +# Copyright (C) 2005 Mandriva # +# # +# Romain d'Alverny <rdalverny at mandriva dot com> # +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License Version 2 as # +# published by the Free Software Foundation. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # +################################################################################ + +# $Id$ + +use strict; +use POSIX; +use lib qw(/usr/lib/libDrakX /usr/lib/libDrakX/drakfirsttime); +use common; +use mgaonline; +use Switch; +use Data::Dumper; +use Error qw(:try); + +# DNS service discovery +use Discover; + +# logging +use Log::Agent; +require Log::Agent::Driver::File; # logging made to file +logconfig( + '-driver' => Log::Agent::Driver::File->make( + '-prefix' => $0, + '-showpid' => 1, + '-file' => 'mdvonline.log', + ), + #-caller => [ -display => '($sub/$line)', -postfix => 1 ], + '-priority' => [ '-display' => '[$priority]' ], +); + +logsay "=================="; +mgaonline::is_running('mdvonline_agent') and die "mdvonline_agent already running\n"; +require_root_capability(); + +my %conf = mgaonline::get_configuration(); +print Dumper(%conf); + +! defined %conf and logwarn "no configuration set", exit 0; + +logsay "checking for tasks"; +print Dumper(%conf); +my $answer = mgaonline::soap_get_task($conf{HOST_ID}, $conf{HOST_KEY}); + +print Dumper($answer); + +if ($answer->{code} == 0) { + if ($answer->{data}{command} eq 'none') { + logsay "nothing to do"; + } + else { + logsay "got something"; + mgaonline::run_and_return_task($answer->{data}); + } + exit 1; +} +else { + logwarn "something went wrong " . $answer->{message} . " (" . $answer->{code} . ")"; + exit 0; +} |