in services/ec2/ec2.class.php [176:307]
function advise(){
$objs = [];
$securityGroups = [];
$driver = 'ec2_compopt';
if (class_exists($driver)){
__info('... (Compute Optimizer) inspecting');
$obj = new $driver($this->compOptClient);
$obj->run();
$objs['ComputeOptimizer'] = $obj->getInfo();
unset($obj);
}
$driver = 'ec2_costExplorer';
if (class_exists($driver)){
__info('... (Cost Explorer) inspecting');
$obj = new $driver($this->costExplorerClient);
$obj->run();
$objs['CostExplorer'] = $obj->getInfo();
unset($obj);
}
$instances = $this->getResources();
$driver = 'ec2_ec2';
foreach($instances as $instance){
if (class_exists($driver)){
__info('... (EC2::Instance) inspecting ' . $instance['Instances'][0]['InstanceId']);
$obj = new $driver($instance, $this->ec2Client);
$obj->run();
}
$objs['EC2::' . $instance['Instances'][0]['InstanceId']] = $obj->getInfo();
unset($obj);
$instanceSGs = $this->getEC2SecurityGroups($instance);
foreach($instanceSGs as $group){
if(!isset($securityGroups[$group['GroupId']])){
$securityGroups[$group['GroupId']] = $group;
}
}
}
$ebsBlocks = $this->getEBS();
$driver = 'ec2_ebs';
foreach($ebsBlocks as $block){
if (class_exists($driver)){
__info('... (EBS::Volume) inspecting ' . $block['VolumeId']);
$obj = new $driver($block, $this->ec2Client);
$obj->run();
$objs['EBS::' . $block['VolumeId']] = $obj->getInfo();
unset($obj);
}
}
$elbList = $this->getELB();
$driver = 'ec2_elb';
foreach($elbList as $elb){
if (class_exists($driver)){
__info('... (ELB::Load Balancer) inspecting ' . $elb['LoadBalancerName']);
$obj = new $driver($elb, $this->elbClient);
$obj->run();
}
$objs['ELB::' . $elb['LoadBalancerName']] = $obj->getInfo();
unset($obj);
$elbSGList = $this->getELBSecurityGroup($elb);
foreach($elbSGList as $group){
if(!isset($securityGroups[$group['GroupId']])){
$securityGroups[$group['GroupId']] = $group;
}
}
}
$elbClassicList = $this->getELBClassic();
$driver = 'ec2_elbClassic';
foreach($elbClassicList as $elb){
if (class_exists($driver)){
__info('... (ELB::Load Balancer Classic) inspecting ' . $elb['LoadBalancerName']);
$obj = new $driver($elb, $this->elbClassicClient);
$obj->run();
}
$objs['ELB Classic::' . $elb['LoadBalancerName']] = $obj->getInfo();
unset($obj);
$elbSGList = $this->getELBSecurityGroup($elb);
foreach($elbSGList as $group){
if(!isset($securityGroups[$group['GroupId']])){
$securityGroups[$group['GroupId']] = $group;
}
}
}
$driver = 'ec2_sg';
foreach($securityGroups as $group){
if(isset($objs[$group['GroupId']])){
continue;
}
if (class_exists($driver)){
__info('... (EC2::Security Group) inspecting ' . $group['GroupId']);
$obj = new $driver($group, $this->ec2Client);
$obj->run();
$objs['SG::' . $group['GroupId']] = $obj->getInfo();
unset($obj);
}
}
$asgList = $this->getAsg();
$driver = 'ec2_asg';
foreach($asgList as $asg){
if(class_exists($driver)){
__info('... (ASG::Auto Scaling Group) inspecting ' . $asg['AutoScalingGroupName']);
$obj = new $driver($asg, $this->asgClient, $this->elbClient, $this->elbClassicClient, $this->ec2Client);
$obj->run();
}
$objs['ASG::' . $asg['AutoScalingGroupName']] = $obj->getInfo();
unset($obj);
}
return $objs;
}