public function process() { $repo_id = (int) $this->getParameter(0); $remote_server_id = (int) $this->getParameter(1); $this->dao->switchToGerrit($repo_id, $remote_server_id); $repository = $this->repository_factory->getRepositoryById($repo_id); if (!$repository) { $this->error('Unable to find repository, perhaps it was deleted in the mean time?'); return; } try { $server = $this->server_factory->getServer($repository); $gerrit_template_id = $this->getParameter(2); $gerrit_project = $this->project_creator->createGerritProject($server, $repository, $gerrit_template_id); $this->project_creator->removeTemporaryDirectory(); $this->project_creator->finalizeGerritProjectCreation($server, $repository, $gerrit_template_id); $this->dao->setGerritMigrationSuccess($repository->getId()); $repository->setRemoteServerMigrationStatus(Git_Driver_Gerrit_ProjectCreatorStatus::DONE); $repository->getBackend()->updateRepoConf($repository); $this->done("Created project {$gerrit_project} on " . $server->getHost()); return true; } catch (Git_Driver_Gerrit_ProjectCreator_ProjectAlreadyExistsException $e) { $this->logError($repository, "gerrit: ", "Gerrit failure: ", $e); } catch (Git_Driver_Gerrit_Exception $e) { $this->logError($repository, "gerrit: ", "Gerrit failure: ", $e); } catch (Git_Command_Exception $e) { $this->logError($repository, "gerrit: ", "Gerrit failure: ", $e); } catch (Exception $e) { $this->logError($repository, "", "An error occured while processing event: ", $e); } }
public function itReturnsAGerritServer() { $repo = aGitRepository()->withRemoteServerId($this->server_id)->build(); $server = $this->factory->getServer($repo); $this->assertIsA($server, 'Git_RemoteServer_GerritServer'); }