/** * @param object $build * @return array */ public function createFromBuild(Build $build, $finalise = true) { $branch = $build->getBranch(); $meta = $branch->getMeta(); $data = array(); $data['type'] = $meta->getType(); $data['id'] = $meta->getMetaId(); $data['title'] = $meta->getTitle(); $data['version'] = $build->getVersion(); if ($meta->getDescription()) { $data['description'] = $meta->getDescription(); } if ($logo = $meta->getLogo()) { $host = sprintf('http%s://%s', isset($_SERVER['HTTPS']) ? 's' : '', isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost'); $data['logo'] = $host . $logo->getWebPath(); } if ($build->getNotes() || $meta->getNotes()) { $data['notes'] = trim($meta->getNotes() . "\n\n" . $build->getNotes()); } if ($build->getFolder()) { $data['folder'] = $build->getFolder(); } if (count($build->getPackages()) > 0) { $data['packages'] = array(); foreach ($build->getPackages() as $package) { $pkg = array('name' => $package->getName(), 'status' => $package->getStatus()); if ($package->getNotes()) { $pkg['notes'] = $package->getNotes(); } if (count($package->getDependencies()) > 0) { $pkg['dependencies'] = array(); foreach ($package->getDependencies() as $dependency) { $d = array('id' => $dependency->getDepId(), 'version' => $dependency->getVersion()); if (count($dependency->getDepPkgs()) > 0) { $d['packages'] = $dependency->getDepPkgs(); } $pkg['dependencies'][] = $d; } } if (count($package->getEnvVars()) > 0) { $pkg['environment'] = array(); foreach ($package->getEnvVars() as $envVar) { $pkg['environment'][] = array('type' => $envVar->getType(), 'value' => $envVar->getValue()); } } if (count($package->getExecutables()) > 0) { $pkg['executables'] = array(); foreach ($package->getExecutables() as $exe) { $pkg['executables'][] = array('version' => $exe->getVersion(), 'file' => $exe->getFile(), 'debug' => $exe->getDebug()); } } if (count($package->getFiles()) > 0) { $pkg['files'] = array(); foreach ($package->getFiles() as $file) { $f = array('filename' => $file->getFilename(), 'is_archive' => $file->getIsArchive(), 'urls' => $file->getUrls()); if ($file->getDest()) { $f['dest'] = (string) $file->getDest(); } $pkg['files'][] = $f; } } $data['packages'][] = $pkg; } } if (count($build->getActions()) > 0) { $data['actions'] = array(); foreach ($build->getActions() as $i => $action) { $act = array('type' => $action->getType(), 'paths' => $action->getPaths(), 'glob' => $action->getGlob()); if ('move' == $action->getType()) { $act['dest'] = (string) $action->getDest(); } $data['actions'][] = $act; } } if ($finalise) { return json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); } else { return $data; } }
/** * @ParamConverter("build", options={"mapping": {"meta": "meta", "branch": "branch", "build": "version"}, "repository_method" = "findOneWithParents"}) */ public function processForceFailAction(Request $request, Build $build) { $branch = $build->getBranch(); $meta = $branch->getMeta(); if (false === $this->isGranted('EDIT', $meta)) { throw new AccessDeniedException('Unauthorised access!'); } if ($build->getState() == Build::PROCESSING) { $build->setState(Build::FAILED); $this->getDoctrine()->getManager()->flush(); $request->getSession()->getFlashBag()->add('warning', "Build <strong>version " . $build->getVersion() . "</strong> has been marked as failed. Processing canceled."); } return $this->redirect($this->generateUrl('hlp_nebula_repository_build_edit', array('meta' => $meta, 'branch' => $branch, 'build' => $build))); }