@Override protected void appendAttributes(Map<String, Object> parameters) { parameters.put("repositoryName", this.getPackageDefinition().getRepository().getName()); parameters.put("packageName", this.getPackageDefinition().getName()); }
public PackageMaterial(PackageMaterialConfig config) { super(TYPE); this.name = config.getName(); this.packageId = config.getPackageId(); this.packageDefinition = config.getPackageDefinition(); }
public String getPluginId() { return getPackageDefinition().getRepository().getPluginConfiguration().getId(); }
@Override public CaseInsensitiveString getName() { if (((name == null) || StringUtils.isEmpty(name.toString())) && packageDefinition != null) { return new CaseInsensitiveString(getPackageDefinition().getRepository().getName() + ":" + packageDefinition.getName()); } else { return name; } }
public Validatable updatedNode(CruiseConfig cruiseConfig) { if (packageMaterialConfig.getPackageDefinition() != null) { return cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)).materialConfigs().get(packageMaterialConfig); } return packageMaterialConfig; }
@Override public void updateFromConfig(MaterialConfig materialConfig) { super.updateFromConfig(materialConfig); this.getPackageDefinition().setConfiguration(((PackageMaterialConfig)materialConfig).getPackageDefinition().getConfiguration()); this.getPackageDefinition().getRepository().setConfiguration(((PackageMaterialConfig)materialConfig).getPackageDefinition().getRepository().getConfiguration()); }
@Test public void shouldSetPackageIdAsNullIfPackageDefinitionIsNull(){ PackageMaterialConfig materialConfig = new PackageMaterialConfig("1"); materialConfig.setPackageDefinition(null); assertThat(materialConfig.getPackageId(), is(nullValue())); assertThat(materialConfig.getPackageDefinition(), is(nullValue())); }
@Override public String getDisplayName() { return ((name == null || name.isBlank()) && getPackageDefinition().getRepository().getName() == null) ? getUriForDisplay() : getName().toString(); }
@Test public void shouldAddErrorIfPackagePluginDoesNotExistsForGivenPackageId() throws Exception { PipelineConfigSaveValidationContext configSaveValidationContext = mock(PipelineConfigSaveValidationContext.class); when(configSaveValidationContext.findPackageById(anyString())).thenReturn(mock(PackageRepository.class)); PackageRepository packageRepository = mock(PackageRepository.class); when(packageRepository.doesPluginExist()).thenReturn(false); PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(new CaseInsensitiveString("package-name"), "package-id", PackageDefinitionMother.create("package-id")); packageMaterialConfig.getPackageDefinition().setRepository(packageRepository); packageMaterialConfig.validateTree(configSaveValidationContext); assertThat(packageMaterialConfig.errors().getAll().size(), is(1)); assertThat(packageMaterialConfig.errors().on(PackageMaterialConfig.PACKAGE_ID), is("Could not find plugin for given package id:[package-id].")); }
@Test public void shouldAddErrorIfPackageDoesNotExistsForGivenPackageId() throws Exception { PipelineConfigSaveValidationContext configSaveValidationContext = mock(PipelineConfigSaveValidationContext.class); when(configSaveValidationContext.findPackageById(anyString())).thenReturn(mock(PackageRepository.class)); PackageRepository packageRepository = mock(PackageRepository.class); when(packageRepository.doesPluginExist()).thenReturn(true); PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(new CaseInsensitiveString("package-name"), "package-id", PackageDefinitionMother.create("package-id")); packageMaterialConfig.getPackageDefinition().setRepository(packageRepository); packageMaterialConfig.validateTree(configSaveValidationContext); assertThat(packageMaterialConfig.errors().getAll().size(), is(1)); assertThat(packageMaterialConfig.errors().on(PackageMaterialConfig.PACKAGE_ID), is("Could not find plugin for given package id:[package-id].")); }
PipelineConfig pipelineConfig = goConfigHolder.config.pipelineConfigByName(new CaseInsensitiveString("new_name")); PackageMaterialConfig packageMaterialConfig = (PackageMaterialConfig) pipelineConfig.materialConfigs().get(0); assertThat(packageMaterialConfig.getPackageDefinition(), is(packageDefinition));
@Test public void shouldAllowPackageTypeMaterialForPipeline() throws Exception { CruiseConfig configToSave = new BasicCruiseConfig(); PackageRepository packageRepository = new PackageRepository(); packageRepository.setId("id"); packageRepository.setName("name"); packageRepository.setPluginConfiguration(new PluginConfiguration("plugin-id", "version")); packageRepository.setConfiguration(new Configuration(getConfigurationProperty("url", false, "http://go"))); String packageId = "id"; PackageDefinition expectedPackageDefinition = new PackageDefinition(packageId, "name", new Configuration(getConfigurationProperty("name", false, "go-agent"))); expectedPackageDefinition.setRepository(packageRepository); packageRepository.getPackages().add(expectedPackageDefinition); configToSave.getPackageRepositories().add(packageRepository); PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(packageId); packageMaterialConfig.setPackageDefinition(expectedPackageDefinition); configToSave.addPipeline("default", com.thoughtworks.go.helper.PipelineConfigMother.pipelineConfig("test", new MaterialConfigs(packageMaterialConfig), new JobConfigs(new JobConfig("ls")))); xmlWriter.write(configToSave, output, false); GoConfigHolder goConfigHolder = xmlLoader.loadConfigHolder(output.toString()); PipelineConfig pipelineConfig = goConfigHolder.config.pipelineConfigByName(new CaseInsensitiveString("test")); assertThat(pipelineConfig.materialConfigs().get(0) instanceof PackageMaterialConfig, is(true)); assertThat(((PackageMaterialConfig) pipelineConfig.materialConfigs().get(0)).getPackageId(), is(packageId)); PackageDefinition packageDefinition = goConfigHolder.config.getPackageRepositories().first().getPackages().first(); assertThat(((PackageMaterialConfig) pipelineConfig.materialConfigs().get(0)).getPackageDefinition(), is(packageDefinition)); }
PipelineConfig pipelineConfig = goConfigHolder.config.pipelineConfigByName(new CaseInsensitiveString("new_name")); PackageMaterialConfig packageMaterialConfig = (PackageMaterialConfig) pipelineConfig.materialConfigs().get(0); assertThat(packageMaterialConfig.getPackageDefinition(), is(packageDefinition)); Configuration repoConfig = packageMaterialConfig.getPackageDefinition().getRepository().getConfiguration(); assertThat(repoConfig.get(0).getConfigurationValue().getValue(), is("value")); assertThat(repoConfig.get(1).getEncryptedValue(), startsWith("AES:")); assertThat(repoConfig.get(2).getEncryptedValue(), startsWith("AES:")); Configuration packageConfig = packageMaterialConfig.getPackageDefinition().getConfiguration(); assertThat(packageConfig.get(0).getConfigurationValue().getValue(), is("value")); assertThat(packageConfig.get(1).getEncryptedValue(), startsWith("AES:"));