/**
  * Get Computers from Actors defined in taskjobs
  * TODO: this method should be rewritten to call directly a getAgents() method in the
  * corresponding itemtype classes.
  */
 public function getAgentsFromActors($actors = array())
 {
     $agents = array();
     $computers = array();
     $computer = new Computer();
     $agent = new PluginFusioninventoryAgent();
     $pfToolbox = new PluginFusioninventoryToolbox();
     foreach ($actors as $actor) {
         $itemtype = key($actor);
         $itemid = $actor[$itemtype];
         $item = getItemForItemtype($itemtype);
         $dbresult = $item->getFromDB($itemid);
         // If this item doesn't exists, we continue to the next actor item.
         // TODO: remove this faulty actor from the list of job actor.
         if ($dbresult === false) {
             continue;
         }
         switch ($itemtype) {
             case 'Computer':
                 $computers[$itemid] = 1;
                 break;
             case 'PluginFusioninventoryDeployGroup':
                 $group_targets = $pfToolbox->executeAsFusioninventoryUser('PluginFusioninventoryDeployGroup::getTargetsForGroup', array($itemid));
                 foreach ($group_targets as $computerid) {
                     $computers[$computerid] = 1;
                 }
                 break;
             case 'Group':
                 //find computers by user associated with this group
                 $group_users = new Group_User();
                 $members = array();
                 //array_keys($group_users->find("groups_id = '$items_id'"));
                 $members = $group_users->getGroupUsers($itemid);
                 foreach ($members as $member) {
                     $computers_from_user = $computer->find("users_id = '{$member['id']}'");
                     foreach ($computers_from_user as $computer_entry) {
                         $computers[$computer_entry['id']] = 1;
                     }
                 }
                 //find computers directly associated with this group
                 $computer_from_group = $computer->find("groups_id = '{$itemid}'");
                 foreach ($computer_from_group as $computer_entry) {
                     $computers[$computer_entry['id']] = 1;
                 }
                 break;
                 /**
                  * TODO: The following should be replaced with Dynamic groups
                  */
             /**
              * TODO: The following should be replaced with Dynamic groups
              */
             case 'PluginFusioninventoryAgent':
                 switch ($itemid) {
                     case "dynamic":
                         break;
                     case "dynamic-same-subnet":
                         break;
                     default:
                         $agents[$itemid] = 1;
                         break;
                 }
                 break;
         }
     }
     //Get agents from the computer's ids list
     foreach ($agent->getAgentsFromComputers(array_keys($computers)) as $agent_entry) {
         $agents[$agent_entry['id']] = 1;
     }
     // Return the list of agent's ids.
     // (We used hash keys to avoid duplicates in the list)
     return array_keys($agents);
 }