mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-29 00:34:46 +02:00
WIP:Discovery RDS
Former-commit-id: d53eb29ec8e7c70c1c76918c1770f65ad81f8ba0
This commit is contained in:
parent
e59ce5412c
commit
834d5d6c50
@ -662,6 +662,9 @@ class DiscoveryTaskList extends Wizard
|
|||||||
case DISCOVERY_CLOUD_AWS:
|
case DISCOVERY_CLOUD_AWS:
|
||||||
return 'wiz=cloud&mode=amazonws&page=1';
|
return 'wiz=cloud&mode=amazonws&page=1';
|
||||||
|
|
||||||
|
case DISCOVERY_CLOUD_AWS_RDS:
|
||||||
|
return 'wiz=cloud&mode=amazonws&sub=rds&page=0';
|
||||||
|
|
||||||
case 'console_task':
|
case 'console_task':
|
||||||
return 'wiz=ctask';
|
return 'wiz=ctask';
|
||||||
|
|
||||||
|
@ -53,9 +53,19 @@ my $Sem :shared;
|
|||||||
my $TaskSem :shared;
|
my $TaskSem :shared;
|
||||||
|
|
||||||
# IDs from tconfig_os.
|
# IDs from tconfig_os.
|
||||||
use constant OS_OTHER => 10;
|
use constant {
|
||||||
use constant OS_ROUTER => 17;
|
OS_OTHER => 10,
|
||||||
use constant OS_SWITCH => 18;
|
OS_ROUTER => 17,
|
||||||
|
OS_SWITCH => 18,
|
||||||
|
DISCOVERY_HOSTDEVICES => 0,
|
||||||
|
DISCOVERY_HOSTDEVICES_CUSTOM => 1,
|
||||||
|
DISCOVERY_CLOUD_AWS => 2,
|
||||||
|
DISCOVERY_APP_VMWARE => 3,
|
||||||
|
DISCOVERY_APP_MYSQL => 4,
|
||||||
|
DISCOVERY_APP_ORACLE => 5,
|
||||||
|
DISCOVERY_CLOUD_AWS_EC2 => 6,
|
||||||
|
DISCOVERY_CLOUD_AWS_RDS => 7
|
||||||
|
};
|
||||||
|
|
||||||
########################################################################################
|
########################################################################################
|
||||||
# Discovery Server class constructor.
|
# Discovery Server class constructor.
|
||||||
@ -175,6 +185,14 @@ sub data_consumer ($$) {
|
|||||||
|
|
||||||
my $main_event = pandora_event($pa_config, "[Discovery] Execution summary",$task->{'id_group'}, 0, 0, 0, 0, 'system', 0, $dbh);
|
my $main_event = pandora_event($pa_config, "[Discovery] Execution summary",$task->{'id_group'}, 0, 0, 0, 0, 'system', 0, $dbh);
|
||||||
|
|
||||||
|
my %cnf_extra;
|
||||||
|
if ($task->{'type'} == DISCOVERY_CLOUD_AWS_EC2
|
||||||
|
|| $task->{'type'} == DISCOVERY_CLOUD_AWS_RDS) {
|
||||||
|
$cnf_extra{'aws_access_key_id'} = pandora_get_config_value($dbh, 'aws_access_key_id');
|
||||||
|
$cnf_extra{'aws_secret_access_key'} = pandora_get_config_value($dbh, 'aws_secret_access_key');
|
||||||
|
$cnf_extra{'cloud_util_path'} = pandora_get_config_value($dbh, 'cloud_util_path');
|
||||||
|
}
|
||||||
|
|
||||||
my $recon = new PandoraFMS::Recon::Base(
|
my $recon = new PandoraFMS::Recon::Base(
|
||||||
communities => \@communities,
|
communities => \@communities,
|
||||||
dbh => $dbh,
|
dbh => $dbh,
|
||||||
@ -206,7 +224,8 @@ sub data_consumer ($$) {
|
|||||||
main_event_id => $main_event,
|
main_event_id => $main_event,
|
||||||
server_id => $server_id,
|
server_id => $server_id,
|
||||||
%{$pa_config},
|
%{$pa_config},
|
||||||
task_data => $task
|
task_data => $task,
|
||||||
|
%cnf_extra
|
||||||
);
|
);
|
||||||
|
|
||||||
$recon->scan();
|
$recon->scan();
|
||||||
|
@ -29,7 +29,9 @@ use constant {
|
|||||||
DISCOVERY_CLOUD_AWS => 2,
|
DISCOVERY_CLOUD_AWS => 2,
|
||||||
DISCOVERY_APP_VMWARE => 3,
|
DISCOVERY_APP_VMWARE => 3,
|
||||||
DISCOVERY_APP_MYSQL => 4,
|
DISCOVERY_APP_MYSQL => 4,
|
||||||
DISCOVERY_APP_ORACLE => 5
|
DISCOVERY_APP_ORACLE => 5,
|
||||||
|
DISCOVERY_CLOUD_AWS_EC2 => 6,
|
||||||
|
DISCOVERY_CLOUD_AWS_RDS => 7
|
||||||
};
|
};
|
||||||
|
|
||||||
# /dev/null
|
# /dev/null
|
||||||
@ -1426,6 +1428,54 @@ sub scan_subnet($) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# Perform a Cloud scan
|
||||||
|
##########################################################################
|
||||||
|
sub cloud_scan($) {
|
||||||
|
my $self = shift;
|
||||||
|
my ($progress, $step);
|
||||||
|
|
||||||
|
my $type = '';
|
||||||
|
|
||||||
|
if ($self->{'task_data'}->{'type'} == DISCOVERY_CLOUD_AWS_EC2
|
||||||
|
|| $self->{'task_data'}->{'type'} == DISCOVERY_CLOUD_AWS_RDS) {
|
||||||
|
$type = 'Aws';
|
||||||
|
} else {
|
||||||
|
# Unrecognized task type.
|
||||||
|
call('message', 'Unrecognized task type', 1);
|
||||||
|
$self->call('update_progress', -1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialize cloud object.
|
||||||
|
my $cloudObj = PandoraFMS::Recon::Util::enterprise_new(
|
||||||
|
'PandoraFMS::Recon::Cloud::'.$type,
|
||||||
|
[
|
||||||
|
task_data => $self->{'task_data'},
|
||||||
|
aws_access_key_id => $self->{'aws_access_key_id'},
|
||||||
|
aws_secret_access_key => $self->{'aws_secret_access_key'},
|
||||||
|
cloud_util_path => $self->{'cloud_util_path'},
|
||||||
|
parent => $self
|
||||||
|
]
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!$cloudObj) {
|
||||||
|
# Failed to initialize, check Cloud credentials or anything.
|
||||||
|
call('message', 'Unable to initialize PandoraFMS::Recon::Cloud::'.$type, 3);
|
||||||
|
} else {
|
||||||
|
# Let Cloud object manage scan.
|
||||||
|
$cloudObj->scan();
|
||||||
|
}
|
||||||
|
|
||||||
|
# Update progress.
|
||||||
|
# Done!
|
||||||
|
$self->{'step'} = '';
|
||||||
|
$self->call('update_progress', -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# Perform an Application scan.
|
# Perform an Application scan.
|
||||||
##########################################################################
|
##########################################################################
|
||||||
@ -1597,6 +1647,11 @@ sub scan($) {
|
|||||||
# Database scan.
|
# Database scan.
|
||||||
return $self->app_scan();
|
return $self->app_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($self->{'task_data'}->{'type'} == DISCOVERY_CLOUD_AWS_RDS) {
|
||||||
|
# Cloud scan.
|
||||||
|
return $self->cloud_scan();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Find devices.
|
# Find devices.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user