public ResourceConfigs(String resources) { String[] resourceArray = resources.split(","); for (String resource : resourceArray) { try { add(new ResourceConfig(resource)); } catch (Exception e) { continue; } } }
public Resource(ResourceConfig resourceConfig) { this(resourceConfig.getName()); }
private ResourceConfig resource(String name) { ResourceConfig resourceConfig = new ResourceConfig(); resourceConfig.setName(name); return resourceConfig; }
@Test public void shouldCompareBasedOnName() { ResourceConfig resourceConfigA = new ResourceConfig("aaa"); ResourceConfig resourceConfigB = new ResourceConfig("bbb"); assertThat(resourceConfigA.compareTo(resourceConfigB), is(org.hamcrest.Matchers.lessThan(0))); assertThat(resourceConfigB.compareTo(resourceConfigA), is(greaterThan(0))); assertThat(resourceConfigA.compareTo(resourceConfigA), is(0)); } }
@Test public void shouldValidateTree(){ ResourceConfig resourceConfig1 = new ResourceConfig("a#"); ResourceConfig resourceConfig2 = new ResourceConfig("b"); ResourceConfigs resourceConfigs = new ResourceConfigs(resourceConfig1, resourceConfig2); resourceConfigs.validateTree(PipelineConfigSaveValidationContext.forChain(true, "group", new PipelineConfig())); assertThat(resourceConfig1.errors().size(), is(1)); assertThat(resourceConfig1.errors().firstError(), is(String.format("Resource name 'a#' is not valid. Valid names much match '%s'", ResourceConfig.VALID_REGEX))); assertThat(resourceConfig2.errors().isEmpty(), is(true)); } }
@Test public void shouldAddErrorTheMessageOnTheRightFieldOfTheRightElement() throws NoSuchFieldException { ResourceConfig resourceConfig = new ResourceConfig(); resourceConfig.setName("#{not-found}"); PipelineConfig pipelineConfig = PipelineConfigMother.createPipelineConfig("cruise", "dev", "ant"); pipelineConfig.setLabelTemplate("#a"); pipelineConfig.get(0).getJobs().addJobWithoutValidityAssertion(new JobConfig(new CaseInsensitiveString("another"), new ResourceConfigs(resourceConfig), new ArtifactConfigs())); new ParamResolver(new ParamSubstitutionHandlerFactory(params(param("foo", "pavan"), param("bar", "jj"))), fieldCache).resolve(pipelineConfig); assertThat(pipelineConfig.errors().on("labelTemplate"), is("Error when processing params for '#a' used in field 'labelTemplate', # must be followed by a parameter pattern or escaped by another #")); assertThat(resourceConfig.errors().on(JobConfig.RESOURCES), is("Parameter 'not-found' is not defined. All pipelines using this parameter directly or via a template must define it.")); }
public ConfigErrors errors() { ConfigErrors configErrors = new ConfigErrors(); configErrors.addAll(agentInstance.agentConfig().errors()); for (ResourceConfig resourceConfig : agentInstance.getResourceConfigs()) { configErrors.addAll(resourceConfig.errors()); } return configErrors; } }
public ResourceConfig(String name) { setName(name); }
@Test public void shouldValidateTree() { ResourceConfig resourceConfig = new ResourceConfig("junk%"); AgentConfig agentConfig = new AgentConfig("uuid", "junk", "junk", new ResourceConfigs(resourceConfig)); boolean isValid = agentConfig.validateTree(ConfigSaveValidationContext.forChain(agentConfig)); assertThat(agentConfig.errors().on(AgentConfig.IP_ADDRESS), is("'junk' is an invalid IP address.")); assertThat(resourceConfig.errors().on(JobConfig.RESOURCES), contains("Resource name 'junk%' is not valid.")); assertThat(isValid, is(false)); }
private StageConfig stageWithJobResource(String resourceName) { StageConfig stage = StageConfigMother.custom("stage", "job"); JobConfigs configs = stage.allBuildPlans(); ResourceConfig resourceConfig = new ResourceConfig(); resourceConfig.setName(resourceName); configs.get(0).resourceConfigs().add(resourceConfig); return stage; } }
public static AgentInstance createFromConfig(AgentConfig agentInConfig, SystemEnvironment systemEnvironment, AgentStatusChangeListener agentStatusChangeListener) { AgentType type = agentInConfig.isFromLocalHost() ? AgentType.LOCAL : AgentType.REMOTE; AgentInstance result = new AgentInstance(agentInConfig, type, systemEnvironment, agentStatusChangeListener); result.agentConfigStatus = agentInConfig.isDisabled() ? AgentConfigStatus.Disabled : AgentConfigStatus.Enabled; result.errors.addAll(agentInConfig.errors()); for (ResourceConfig resourceConfig : agentInConfig.getResourceConfigs()) { result.errors.addAll(resourceConfig.errors()); } return result; }
public void addResourceConfig(String resource) { resourceConfigs.add(new ResourceConfig(resource)); }
@Test public void shouldNotAllowParamsInsideResourceNameWhenOutsideTemplates() throws Exception { ResourceConfig resourceConfig = resource("#{PARAMS}"); ValidationContext context = ConfigSaveValidationContext.forChain(new BasicCruiseConfig(), new PipelineConfig()); resourceConfig.validate(context); assertThat(resourceConfig.errors().isEmpty(), is(false)); assertThat(resourceConfig.errors().on(JobConfig.RESOURCES), is(String.format("Resource name '#{PARAMS}' is not valid. Valid names much match '%s'", ResourceConfig.VALID_REGEX))); }
public String toString() { return getName(); }
public void importFromCsv(String csv) { clear(); String[] resourceNames = csv.split(","); for (String resourceName : resourceNames) { add(new ResourceConfig(resourceName.trim())); } } }
@Test public void shouldNotAllowInvalidResourceNamesWhenInsideTemplates() throws Exception { ResourceConfig resourceConfig = resource("#?{45}"); ValidationContext context = ConfigSaveValidationContext.forChain(new BasicCruiseConfig(), new TemplatesConfig()); resourceConfig.validate(context); assertThat(resourceConfig.errors().isEmpty(), is(false)); assertThat(resourceConfig.errors().on(JobConfig.RESOURCES), is("Resource name '#?{45}' is not valid. Valid names can contain valid parameter syntax or valid alphanumeric with hyphens,dots or pipes")); }
public String identifier(ResourceConfig resourceConfig) { return resourceConfig.getName(); }
public ResourceConfigs toResourceConfigs() { final ResourceConfigs resourceConfigs = new ResourceConfigs(); for (Resource resource : this) { resourceConfigs.add(new ResourceConfig(resource.getName())); } return resourceConfigs; } }