/**
  * @param EiCampaignExecution $execution
  * @return array
  */
 public function getTestSetExecutionInfos(EiCampaignExecution $execution)
 {
     // Création de la requête SQL de récupération
     $sql = "SELECT id, duree, status_nom, status_color FROM ei_test_set_status_vw WHERE id IN (" . "SELECT ei_test_set_id FROM ei_campaign_execution_graph WHERE execution_id =" . $execution->getId() . ");";
     // Récupération des résultats.
     $resultats = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAll($sql);
     $datas = array();
     foreach ($resultats as $resultat) {
         $datas[$resultat["id"]] = $resultat;
         unset($datas[$resultat["id"]]["id"]);
     }
     return $datas;
 }
 /**
  * @param array $array
  * @param EiCampaignExecution $exec
  * @return EiCampaignExecution
  */
 private function createObjectStatusFromArray(array $array, EiCampaignExecution $exec = null)
 {
     if ($exec == null) {
         // Création de l'objet.
         $exec = new EiCampaignExecution();
         $exec->fromArray($array);
     }
     $exec->setStatusName($array["status_nom"]);
     $exec->setStatusColor($array["status_color"]);
     $exec->setDuree($array["duree"]);
     $exec->setNbEtapesCamp($array["nb_step_camp"]);
     $exec->setNbEtapesExecution($array["nb_step_ex"]);
     $exec->setNbEtapesExecutees($array["nb_step_executed"]);
     $exec->setAuthorUsername($array["author_username"]);
     return $exec;
 }
Exemple #3
0
 /**
  * Create an execution.
  *
  * @param sfRequest $request A request object
  */
 public function executeCreate(sfWebRequest $request)
 {
     $this->setLayout(false);
     $this->getResponse()->setContentType('application/json');
     $resultat = array();
     $erreur = false;
     $id = false;
     $url = false;
     $internal = false;
     // Récupération des valeurs POST.
     if ($request->getParameter("internal") != null && $request->getParameter("internal") == true) {
         $projet_nom = $request->getParameter("projet");
         $profil_nom = $request->getParameter("profil");
         $campagne_id = $request->getParameter("campagne");
         $positionDebut = $request->getParameter("position_debut");
         $positionFin = $request->getParameter("position_fin");
         $onError = $request->getParameter("onError");
         $internal = true;
     } else {
         $projet_nom = $request->getPostParameter("projet");
         $profil_nom = $request->getPostParameter("profil");
         $campagne_id = $request->getPostParameter("campagne");
         $positionDebut = $request->getPostParameter("position_debut");
         $positionFin = $request->getPostParameter("position_fin");
         $onError = $request->getPostParameter("onError");
     }
     // Recherche des éléments.
     // On récupère le projet, le profil et la campagne.
     /** @var EiProjet $oProjet */
     $oProjet = Doctrine_Core::getTable("EiProjet")->findOneByName($projet_nom);
     /** @var EiProfil $oProfil */
     $oProfil = $oProjet != null ? Doctrine_Core::getTable("EiProfil")->findOneByNameAndProjectIdAndProjectRef($profil_nom, $oProjet->getProjectId(), $oProjet->getRefId()) : null;
     /** @var EiCampaign $oCampagne */
     $oCampagne = Doctrine_Core::getTable("EiCampaign")->find($campagne_id);
     // On vérifie la concordance entre le projet et le profil puis le projet et la campagne.
     if (!($oProfil != null && $oProjet != null && $oCampagne != null)) {
         $erreur = "Impossible to retrieve Environment, project or campaign.";
     } elseif (!($oProjet->getProjectId() == $oProfil->getProjectId() && $oProjet->getRefId() == $oProfil->getProjectRef())) {
         $erreur = "Impossible to retrieve project's Environment.";
     } elseif (!($oProjet->getProjectId() == $oCampagne->getProjectId() && $oProjet->getRefId() == $oCampagne->getProjectRef())) {
         $erreur = "Impossible to retrieve project's campaign.";
     } else {
         $graphs = Doctrine_Core::getTable("EiCampaign")->getCampaignScenarios($oCampagne, $positionDebut, $positionFin);
         $execution = new EiCampaignExecution();
         $execution->setAuthorId($this->getUser()->getGuardUser()->getId());
         $execution->setProfileId($oProfil->getProfileId());
         $execution->setProfileRef($oProfil->getProfileRef());
         $execution->setProjectId($oProjet->getProjectId());
         $execution->setProjectRef($oProjet->getRefId());
         $execution->setCampaignId($campagne_id);
         $execution->setTermine(false);
         if (is_array($onError)) {
             $execution->setOnError($onError["id"]);
         }
         $execution->save();
         $position = 1;
         /** @var EiCampaignGraph $graph */
         foreach ($graphs as $graph) {
             $executionGraph = new EiCampaignExecutionGraph();
             $executionGraph->setDataSetId($graph->getDataSetId());
             $executionGraph->setDescription($graph->getDescription());
             $executionGraph->setExecutionId($execution->getId());
             $executionGraph->setFilename($graph->getFilename());
             $executionGraph->setStepTypeId($graph->getStepTypeId());
             $executionGraph->setGraphId($graph->getId());
             $executionGraph->setMimeType($graph->getMimeType());
             $executionGraph->setPath($graph->getPath());
             $executionGraph->setPosition($position++);
             $executionGraph->setScenarioId($graph->getScenarioId());
             $executionGraph->setEiVersion($graph->getEiScenario()->getVersionForProfil($oProfil));
             $executionGraph->setState($graph->getState());
             $executionGraph->save();
             $this->execution = $executionGraph;
         }
         $id = $execution->getId();
         $url = $this->generateUrl("executionGraphHasChainedList", array('project_id' => $oProjet->getProjectId(), 'project_ref' => $oProjet->getRefId(), 'profile_ref' => $request->getParameter("profile_ref"), 'profile_id' => $request->getParameter("profile_id"), 'profile_name' => $request->getParameter("profile_name"), 'campaign_id' => $oCampagne->getId(), 'execution_id' => $execution->getId()));
         $this->getUser()->setAttribute("executionIdForRobot", $execution->getId());
     }
     $resultat["erreur"] = $erreur;
     $resultat["id"] = $id;
     $resultat["url"] = $url;
     return $internal != null ? sfView::NONE : $this->renderText(json_encode($resultat));
 }