public static boolean isConsoleOutput(String filePath) { return getConsoleOutputFolderAndFileName().equalsIgnoreCase(filePath); }
public static String getConsoleOutputFolderAndFileNameUrl() { return getOutputFolderAndFileName(CONSOLE_LOG_FILE_NAME, "/"); }
public static String getPath(long buildId) { return getPath(buildId, CONSOLE_LOG_FILE_NAME); }
public final ModelAndView createView(String filePath, String sha) throws Exception { //return the artifact itself if this is a single file File file = isConsoleOutput(filePath) ? consoleService.consoleLogArtifact(translatedId) : artifactsService.findArtifact(translatedId, filePath); if (file.exists() && file.isFile()) { return FileModelAndView.createFileView(file, sha); } //return the contents of the specified directory formatted as required //NOTE THAT THIS IS ONLY CALLED FOR JSON OR HTML String convertedURL = filePath.replaceFirst("\\.(html|json|zip)$", ""); File directory = artifactsService.findArtifact(translatedId, convertedURL); if (directory.exists() && directory.isDirectory()) { ArtifactFolder folder = new ArtifactFolder(translatedId, directory, convertedURL); return folderViewFactory.createView(translatedId, folder); } return FileModelAndView.fileNotFound(filePath); }
public ConsoleOutputTransmitter createConsoleOutputTransmitter(JobIdentifier jobIdentifier, AgentIdentifier agentIdentifier, String consoleLogCharset) { String consoleUrl = urlService.getUploadUrlOfAgent(jobIdentifier, getConsoleOutputFolderAndFileNameUrl()); return new ConsoleOutputTransmitter(new RemoteConsoleAppender(consoleUrl, httpService, consoleLogCharset)); } }
@Test public void shouldIdentifyConsoleLog() throws Exception { assertThat(isConsoleOutput("cruise-output/console.log"), is(true)); }
private BuildSettings createBuildSettings(BuildAssignment assignment) { URLService urlService = new URLService(""); // generate path only url JobIdentifier jobIdentifier = assignment.getJobIdentifier(); BuildSettings buildSettings = new BuildSettings(); buildSettings.setConsoleLogCharset(systemEnvironment.consoleLogCharset()); buildSettings.setBuildId(String.valueOf(jobIdentifier.getBuildId())); buildSettings.setBuildLocatorForDisplay(jobIdentifier.buildLocatorForDisplay()); buildSettings.setBuildLocator(jobIdentifier.buildLocator()); buildSettings.setBuildCommand(new BuildComposer(assignment).compose()); buildSettings.setConsoleUrl(urlService.getUploadUrlOfAgent(jobIdentifier, getConsoleOutputFolderAndFileNameUrl())); buildSettings.setArtifactUploadBaseUrl(urlService.getUploadBaseUrlOfAgent(jobIdentifier)); buildSettings.setPropertyBaseUrl(urlService.getPropertiesUrl(jobIdentifier, "")); return buildSettings; }
public File consoleLogArtifact(LocatableEntity jobIdentifier) throws IllegalArtifactLocationException { return chooser.findArtifact(jobIdentifier, getConsoleOutputFolderAndFileName()); }
@Test public void shouldNotIdentifyAnyOtherArtifactAsConsoleLog() throws Exception { assertThat(isConsoleOutput("artifact"), is(false)); } }
public static ModelAndView fileNotFound(String filePath) { if ((ArtifactLogUtil.getConsoleOutputFolderAndFileName()).equals(filePath)) { return ResponseCodeView.create(SC_NOT_FOUND, "Console log for this job is unavailable as it may have been purged by Go or deleted externally."); } return ResponseCodeView.create(SC_NOT_FOUND, "Artifact '" + filePath + "' is unavailable as it may have been purged by Go or deleted externally."); }
if (isConsoleOutput(filePath)) { return putConsoleOutput(jobIdentifier, request.getInputStream()); } else {
public DirectoryEntries getArtifactFiles(final DirectoryReader directoryReader) throws IllegalArtifactLocationException { return new DirectoryEntries() {{ if (!job.isCompleted()) { addFolder(CRUISE_OUTPUT_FOLDER).addFile(CONSOLE_LOG_FILE_NAME, artifactsService.findArtifactUrl(jobIdentifier, getConsoleOutputFolderAndFileName())); } addAll(directoryReader.listEntries(artifactsService.findArtifact(jobIdentifier, ""), "")); setIsArtifactsDeleted(stage.isArtifactsDeleted()); }}; }