/** * Process CI deletion * @param Project $project * @return mixed */ protected function processCIProjectDeletion(Project $project) { $returnValues['slot_name'] = 'CI'; // Delete Jobs // Get all CI pipelines for a project $pipelines = $this->em->getRepository('SpiritDevDBoxPortalBundle:ContinuousIntegration')->findBy(array('project' => $project->getId())); // For each pipeline $pipelinesDeletion = array(); foreach ($pipelines as $pipeline) { // Delete job $jenkins_job_deletion = $this->jenkinsApi->deleteJob($pipeline->getCiName()); $pipelinesDeletion[] = array('key' => $pipeline->getCiName(), 'data' => $jenkins_job_deletion); } $returnValues['data'][] = $this->setRetVal('CI Job deletion', 'array_with_sub_key', $pipelinesDeletion); // Delete view try { $jenkins_view_deletion = $this->jenkinsApi->deleteView($project->getName()); $returnValues['data'][] = $this->setRetVal('CI View deletion', 'bool', $jenkins_view_deletion); } catch (\Exception $e) { $returnValues['data'][] = $this->setRetVal('CI View deletion', 'bool', false); } return $returnValues; }
/** * Setting demand content * @param Project $project * @return array */ private function setContentData(Project $project) { $owner = $project->getOwner()->getCommonName(); $teamMembersArray = ""; $teamMembers = $project->getTeamMembers(); $tml = count($teamMembers); $tmc = 1; foreach ($teamMembers as $member) { $teamMembersArray .= $member->getCommonName(); if ($tmc < $tml) { $teamMembersArray .= ", "; } $tmc++; } return ["name" => $project->getName(), "description" => $project->getDescription(), "owner" => $owner, "team_members" => $teamMembersArray, "git_issues" => $project->isGitLabIssueEnabled(), "git_wiki" => $project->isGitLabWikiEnabled(), "git_snippets" => $project->isGitLabSnippetsEnabled(), "id" => $project->getId()]; }