Skip to content

Commit

Permalink
check fatal conditions earlier
Browse files Browse the repository at this point in the history
  • Loading branch information
guillomovitch committed Feb 28, 2013
1 parent 233ce63 commit 4497837
Showing 1 changed file with 33 additions and 30 deletions.
63 changes: 33 additions & 30 deletions lib/FusionInventory/Agent.pm
Expand Up @@ -64,50 +64,53 @@ sub init {
$logger->debug("Storage directory: $self->{vardir}");
$logger->debug("Lib directory: $self->{libdir}");

$self->{storage} = FusionInventory::Agent::Storage->new(
logger => $logger,
directory => $self->{vardir}
);

# handle persistent state
$self->_loadState();

$self->{deviceid} = _computeDeviceId() if !$self->{deviceid};
$self->{token} = _computeToken() if !$self->{token};

$self->_saveState();

# create target list
if ($config->{server}) {
foreach my $url (@{$config->{server}}) {
push @{$self->{targets}},
FusionInventory::Agent::Target::Server->new(
logger => $logger,
deviceid => $self->{deviceid},
delaytime => $config->{delaytime},
basevardir => $self->{vardir},
url => $url,
tag => $config->{tag},
);
}
# compute servers list
if (!@{$config->{server}}) {
$logger->error("No server defined, aborting");
exit 1;
}

if (!$self->{targets}) {
$logger->error("No target defined, aborting");
exit 1;
foreach my $url (@{$config->{server}}) {
push @{$self->{targets}},
FusionInventory::Agent::Target::Server->new(
logger => $logger,
deviceid => $self->{deviceid},
delaytime => $config->{delaytime},
basevardir => $self->{vardir},
url => $url,
tag => $config->{tag},
);
}

# compute list of allowed tasks
# compute tasks list
my %available = $self->getAvailableTasks(fork => 1);
my @tasks = keys %available;

if (!@tasks) {
$logger->error("No tasks available, aborting");
exit 1;
}

$logger->debug("Available tasks:");
foreach my $task (keys %available) {
$logger->debug("- $task: $available{$task}");
}

$self->{tasks} = \@tasks;

$self->{storage} = FusionInventory::Agent::Storage->new(
logger => $logger,
directory => $self->{vardir}
);

# handle persistent state
$self->_loadState();

$self->{deviceid} = _computeDeviceId() if !$self->{deviceid};
$self->{token} = _computeToken() if !$self->{token};

$self->_saveState();

# create HTTP interface
if (!$config->{'no-httpd'}) {
FusionInventory::Agent::HTTP::Server->require();
Expand Down

0 comments on commit 4497837

Please sign in to comment.