private JobIdentifier jobIdentifier() { JobIdentifier jobIdentifier = new JobIdentifier(pipelineName, 1, pipelineLabel, stageName, stageCounter, jobName, 1L); return jobIdentifier; } }
private void addJobHungWarning(JobIdentifier jobIdentifier, long difference) { String namespacedJob = String.format("%s/%s/%s", jobIdentifier.getPipelineName(), jobIdentifier.getStageName(), jobIdentifier.getBuildName()); serverHealthService.update(ServerHealthState.warningWithHtml( String.format("Job '%s' is not responding", namespacedJob), String.format("Job <a href='/go/tab/build/detail/%s'>%s</a> is currently running but has not shown any console activity in the last %s minute(s). This job may be hung.", jobIdentifier.buildLocator(), namespacedJob, inMinutes(difference)), HealthStateType.general(HealthStateScope.forJob(jobIdentifier.getPipelineName(), jobIdentifier.getStageName(), jobIdentifier.getBuildName())))); }
private JsonObject jobIdentifierJson(JobIdentifier jobIdentifier) { JsonObject jobIdentifierJson = new JsonObject(); jobIdentifierJson.addProperty("pipeline_name", jobIdentifier.getPipelineName()); jobIdentifierJson.addProperty("pipeline_label", jobIdentifier.getPipelineLabel()); jobIdentifierJson.addProperty("pipeline_counter", jobIdentifier.getPipelineCounter()); jobIdentifierJson.addProperty("stage_name", jobIdentifier.getStageName()); jobIdentifierJson.addProperty("stage_counter", jobIdentifier.getStageCounter()); jobIdentifierJson.addProperty("job_name", jobIdentifier.getBuildName()); jobIdentifierJson.addProperty("job_id", jobIdentifier.getBuildId()); return jobIdentifierJson; }
public String toFullString() { return "Build [" + buildLocator() + "/" + getBuildId() + "]"; }
public boolean isSameStageConfig(JobIdentifier other) { return getPipelineName().equalsIgnoreCase(other.getPipelineName()) && getStageName().equalsIgnoreCase(other.getStageName()); }
public String ccProjectName() { return String.format("%s :: %s :: %s", getPipelineName(), getStageName(), getBuildName()); }
public void populateEnvironmentVariables(EnvironmentVariableContext environmentVariableContext) { environmentVariableContext.setProperty("GO_PIPELINE_NAME", getPipelineName(), false); environmentVariableContext.setProperty("GO_PIPELINE_COUNTER", String.valueOf(getPipelineCounter()), false); environmentVariableContext.setProperty("GO_PIPELINE_LABEL", getPipelineLabel(), false); environmentVariableContext.setProperty("GO_STAGE_NAME", getStageName(), false); environmentVariableContext.setProperty("GO_STAGE_COUNTER", getStageCounter(), false); if (getRerunOfCounter() != null) { environmentVariableContext.setProperty("GO_RERUN_OF_STAGE_COUNTER", String.valueOf(getRerunOfCounter()), false); } environmentVariableContext.setProperty("GO_JOB_NAME", getBuildName(), false); }
private String mutexForStageInstance(JobIdentifier id) { return mutexForStageInstance(id.getPipelineName(), id.getPipelineCounter(), id.getStageName(), id.getStageCounter()); }
private String httpUrlFor(String baseUrl, final JobIdentifier identifier) { return baseUrl + "/tab/build/detail/" + identifier.buildLocator(); } }
@Test public void shouldReturnArtifactLocatorUsingPipelineCounter() throws Exception { JobIdentifier id = new JobIdentifier("cruise", 1234, "1.0.1234", "dev", "1", "linux-firefox-1", 100L); assertThat(id.artifactLocator("consoleoutput/log.xml"), is("cruise/1234/dev/1/linux-firefox-1/consoleoutput/log.xml")); }
@Test public void shouldReturnBuildLocator() throws Exception { JobIdentifier id = new JobIdentifier("cruise", 1, "label-", "dev", "1", "linux-firefox-1", 100L); assertThat(id.buildLocator(), is("cruise/1/dev/1/linux-firefox-1")); }
String environment = environmentConfigService.envForPipeline(plan.getPipelineName()); createAgentQueue.post(new CreateAgentMessage(goConfigService.serverConfig().getAgentAutoRegisterKey(), environment, plan.getElasticProfile(), plan.getIdentifier()), messageTimeToLive); serverHealthService.removeByScope(HealthStateScope.forJob(plan.getIdentifier().getPipelineName(), plan.getIdentifier().getStageName(), plan.getIdentifier().getBuildName())); } else { String jobConfigIdentifier = plan.getIdentifier().jobConfigIdentifier().toString(); String description = String.format("Plugin [%s] associated with %s is missing. Either the plugin is not " + "installed or could not be registered. Please check plugins tab " + "and server logs for more details.", plan.getElasticProfile().getPluginId(), jobConfigIdentifier); serverHealthService.update(ServerHealthState.error(String.format("Unable to find agent for %s", jobConfigIdentifier), description, HealthStateType.general(HealthStateScope.forJob(plan.getIdentifier().getPipelineName(), plan.getIdentifier().getStageName(), plan.getIdentifier().getBuildName())))); LOGGER.error(description);
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 JobInstance mostRecentJobWithTransitions(JobIdentifier job) { Long buildId = findOriginalJobIdentifier(job.getStageIdentifier(), job.getBuildName()).getBuildId(); return buildByIdWithTransitions(buildId); }
@RequestMapping(value = "/repository/restful/properties/post", method = RequestMethod.POST) public void setProperty(@RequestParam("pipelineName") String pipelineName, @RequestParam("pipelineCounter") String pipelineCounter, @RequestParam("stageName") String stageName, @RequestParam("stageCounter") String stageCounter, @RequestParam("jobName") String buildName, @RequestParam("property") String property, @RequestParam("value") String value, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!headerConstraint.isSatisfied(request)) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing required header 'Confirm'"); return; } JobIdentifier jobIdentifier; try { jobIdentifier = restfulService.findJob(pipelineName, pipelineCounter, stageName, stageCounter, buildName); } catch (Exception e) { BasicRestfulAction.jobNotFound(new JobIdentifier(pipelineName, -1, pipelineCounter, stageName, stageCounter, buildName)).respond(response); return; } Long id = jobIdentifier.getBuildId(); propertyService.addProperty(id, property, value).respond(response); }
private void initialize(AgentWorkContext agentWorkContext) { JobIdentifier jobIdentifier = assignment.getJobIdentifier(); this.timeProvider = new TimeProvider(); agentWorkContext.getAgentRuntimeInfo().busy(new AgentBuildingInfo(jobIdentifier.buildLocatorForDisplay(), jobIdentifier.buildLocator())); this.workingDirectory = assignment.getWorkingDirectory(); this.materialRevisions = assignment.materialRevisions(); this.goPublisher = new DefaultGoPublisher(agentWorkContext.getArtifactsManipulator(), jobIdentifier, agentWorkContext.getRepositoryRemote(), agentWorkContext.getAgentRuntimeInfo(), consoleLogCharset); this.artifactsPublisher = new ArtifactsPublisher(goPublisher, agentWorkContext.getArtifactExtension(), assignment.getArtifactStores(), agentWorkContext.getPluginRequestProcessorRegistry(), workingDirectory); this.builders = new Builders(assignment.getBuilders(), goPublisher, agentWorkContext.getTaskExtension(), agentWorkContext.getArtifactExtension(), agentWorkContext.getPluginRequestProcessorRegistry()); }
public Long getId() { return getBuildId(); } }
@Test public void shouldNotPopulate_RerunOfStage_whenNotAvailable() { JobIdentifier id = new JobIdentifier("pipeline-name", 10, "label-10", "stage-name", "2", "build-name"); EnvironmentVariableContext context = new EnvironmentVariableContext(); id.populateEnvironmentVariables(context); assertThat(context.hasProperty("GO_RERUN_OF_STAGE_COUNTER"), is(false)); id.setRerunOfCounter(1); context = new EnvironmentVariableContext(); id.populateEnvironmentVariables(context); assertThat(context.hasProperty("GO_RERUN_OF_STAGE_COUNTER"), is(true)); } }
public String getUploadUrlOfAgent(JobIdentifier jobIdentifier, String filePath, int attempt) { return format("%s/%s/%s/%s?attempt=%d&buildId=%d", baseRemotingURL, "remoting", "files", jobIdentifier.artifactLocator(filePath), attempt, jobIdentifier.getBuildId()); }
public RestfulAction listPropertiesForJob(JobIdentifier jobIdentifier, String type, String propertyKey) { Properties properties; Long buildId = jobIdentifier.getBuildId(); if (propertyKey != null) { String value = propertyDao.value(buildId, propertyKey); if (value == null) { return PropertyAction.propertyNotFound(propertyKey); } properties = new Properties(new Property(propertyKey, value)); } else { properties = propertyDao.list(jobIdentifier.getBuildId()); } return listPropertiesAs(type, properties, jobIdentifier.getBuildName()); }