Search in sources :

Example 16 with SvnMaterialConfig

use of com.thoughtworks.go.config.materials.svn.SvnMaterialConfig in project gocd by gocd.

the class MagicalGoConfigXmlWriterTest method shouldWriteSvnMaterialToXmlPartial.

@Test
public void shouldWriteSvnMaterialToXmlPartial() throws Exception {
    String encryptedPassword = new GoCipher().encrypt("password");
    SvnMaterialConfig material = com.thoughtworks.go.helper.MaterialConfigsMother.svnMaterialConfig("http://user:pass@svn", null, "cruise", "password", false, null);
    assertThat(xmlWriter.toXmlPartial(material), is("<svn url=\"http://user:pass@svn\" username=\"cruise\" encryptedPassword=\"" + encryptedPassword + "\" materialName=\"http___user_pass@svn\" />"));
}
Also used : GoCipher(com.thoughtworks.go.security.GoCipher) SvnMaterialConfig(com.thoughtworks.go.config.materials.svn.SvnMaterialConfig) Test(org.junit.jupiter.api.Test)

Example 17 with SvnMaterialConfig

use of com.thoughtworks.go.config.materials.svn.SvnMaterialConfig in project gocd by gocd.

the class MagicalGoConfigXmlLoaderTest method shouldMigrateDESEncryptedMaterialPassword_XslMigrationFrom108To109.

@Test
void shouldMigrateDESEncryptedMaterialPassword_XslMigrationFrom108To109(ResetCipher resetCipher) throws Exception {
    resetCipher.setupDESCipherFile();
    String clearText = "user-password!";
    // "user-password!" encrypted using the above key
    String desEncryptedPassword = "mvcX9yrQsM4iPgm1tDxN1A==";
    String content = configWithPipeline("<pipeline name='some_pipeline'>" + "    <materials>" + "      <svn url='asdsa' username='user' encryptedPassword='" + desEncryptedPassword + "' dest='svn'/>" + "      <tfs url='tfsurl' username='user' domain='domain' encryptedPassword='" + desEncryptedPassword + "' projectPath='path' dest='tfs' />" + "      <p4 port='host:9999' username='user' encryptedPassword='" + desEncryptedPassword + "' dest='perforce'>" + "          <view><![CDATA[view]]></view>" + "        </p4>" + "    </materials>" + "  <stage name='some_stage'>" + "    <jobs>" + "      <job name='some_job'><tasks><exec command='echo'><runif status='passed' /></exec></tasks>" + "      </job>" + "    </jobs>" + "  </stage>" + "</pipeline>", 108);
    CruiseConfig config = ConfigMigrator.loadWithMigration(content).config;
    MaterialConfigs materialConfigs = config.allPipelines().get(0).materialConfigs();
    SvnMaterialConfig svnMaterialConfig = (SvnMaterialConfig) materialConfigs.get(0);
    assertThat(svnMaterialConfig.getPassword()).isEqualTo(clearText);
    assertThat(svnMaterialConfig.getEncryptedPassword()).startsWith("AES:");
    TfsMaterialConfig tfs = (TfsMaterialConfig) materialConfigs.get(1);
    assertThat(tfs.getPassword()).isEqualTo(clearText);
    assertThat(tfs.getEncryptedPassword()).startsWith("AES:");
    assertThat(tfs.getUrl()).isEqualTo("tfsurl");
    P4MaterialConfig p4 = (P4MaterialConfig) materialConfigs.get(2);
    assertThat(p4.getPassword()).isEqualTo(clearText);
    assertThat(p4.getEncryptedPassword()).startsWith("AES:");
    assertThat(p4.getServerAndPort()).isEqualTo("host:9999");
}
Also used : P4MaterialConfig(com.thoughtworks.go.config.materials.perforce.P4MaterialConfig) TfsMaterialConfig(com.thoughtworks.go.config.materials.tfs.TfsMaterialConfig) SvnMaterialConfig(com.thoughtworks.go.config.materials.svn.SvnMaterialConfig) Test(org.junit.jupiter.api.Test)

Example 18 with SvnMaterialConfig

use of com.thoughtworks.go.config.materials.svn.SvnMaterialConfig in project gocd by gocd.

the class MaterialExpansionService method expandExternals.

private void expandExternals(MaterialConfig configuredMaterial, MaterialConfigs expandedMaterials) {
    SvnMaterialConfig svnMaterialConfig = (SvnMaterialConfig) configuredMaterial;
    if (!svnMaterialConfig.isCheckExternals()) {
        return;
    }
    List<SvnExternal> urLs = svn(svnMaterialConfig).getAllExternalURLs();
    for (SvnExternal externalUrl : urLs) {
        SvnMaterialConfig svnMaterial = new SvnMaterialConfig();
        svnMaterial.setUrl(externalUrl.getURL());
        svnMaterial.setUserName(svnMaterialConfig.getUserName());
        svnMaterial.setPassword(svnMaterialConfig.getPassword());
        svnMaterial.setCheckExternals(true);
        svnMaterial.setFolder(svnMaterialConfig.folderFor(externalUrl.getFolder()));
        svnMaterial.setFilter(svnMaterialConfig.filter());
        expandedMaterials.add(svnMaterial);
    }
}
Also used : SvnMaterialConfig(com.thoughtworks.go.config.materials.svn.SvnMaterialConfig) SvnExternal(com.thoughtworks.go.domain.materials.svn.SvnExternal)

Example 19 with SvnMaterialConfig

use of com.thoughtworks.go.config.materials.svn.SvnMaterialConfig in project gocd by gocd.

the class ParamResolverTest method shouldNotResolveOptedOutConfigAttributes.

@Test
public void shouldNotResolveOptedOutConfigAttributes() throws NoSuchFieldException {
    PipelineConfig pipelineConfig = PipelineConfigMother.createPipelineConfig("cruise-#{foo}-#{bar}", "dev", "ant");
    SvnMaterialConfig svn = (SvnMaterialConfig) pipelineConfig.materialConfigs().get(0);
    svn.setPassword("#quux-#{foo}-#{bar}");
    pipelineConfig.setLabelTemplate("2.1-${COUNT}-#{foo}-bar-#{bar}");
    new ParamResolver(new ParamSubstitutionHandlerFactory(params(param("foo", "pavan"), param("bar", "jj"))), fieldCache).resolve(pipelineConfig);
    assertThat(pipelineConfig.getLabelTemplate(), is("2.1-${COUNT}-pavan-bar-jj"));
    assertThat(pipelineConfig.name(), is(new CaseInsensitiveString("cruise-#{foo}-#{bar}")));
    assertThat(((SvnMaterialConfig) pipelineConfig.materialConfigs().get(0)).getPassword(), is("#quux-#{foo}-#{bar}"));
    assertThat(pipelineConfig.getClass().getDeclaredField("name").getAnnotation(SkipParameterResolution.class), isA(SkipParameterResolution.class));
}
Also used : SvnMaterialConfig(com.thoughtworks.go.config.materials.svn.SvnMaterialConfig) Test(org.junit.jupiter.api.Test)

Example 20 with SvnMaterialConfig

use of com.thoughtworks.go.config.materials.svn.SvnMaterialConfig in project gocd by gocd.

the class ConfigRepoConfigTest method validate_shouldNotAllowPipelineWithSameRepositoryAndDifferentAutoUpdate.

@Test
public void validate_shouldNotAllowPipelineWithSameRepositoryAndDifferentAutoUpdate() {
    CruiseConfig cruiseConfig = new BasicCruiseConfig();
    GoConfigMother mother = new GoConfigMother();
    MaterialConfigs materialConfigs = new MaterialConfigs();
    SvnMaterialConfig svnInConfigRepo = svn("url", false);
    SvnMaterialConfig svnInPipelineConfig = svn("url", false);
    svnInConfigRepo.setAutoUpdate(false);
    svnInPipelineConfig.setAutoUpdate(true);
    materialConfigs.add(svnInPipelineConfig);
    ConfigRepoConfig configRepoConfig = ConfigRepoConfig.createConfigRepoConfig(svnInConfigRepo, "plug", "id");
    cruiseConfig.setConfigRepos(new ConfigReposConfig(configRepoConfig));
    PipelineConfig pipeline1 = mother.addPipeline(cruiseConfig, "badpipe", "build", materialConfigs, "build");
    configRepoConfig.validate(ConfigSaveValidationContext.forChain(cruiseConfig, new BasicPipelineConfigs(), pipeline1));
    assertThat(svnInConfigRepo.errors().isEmpty()).isFalse();
    assertThat(svnInConfigRepo.errors().on("autoUpdate")).isEqualTo("The material of type Subversion (url) is used elsewhere with a different value for autoUpdate (\"Poll for changes\"). All copies of this material must have the same autoUpdate setting or configuration repository must be removed.\n Config Repository: id (auto update disabled).\n Pipelines: badpipe (auto update enabled)");
}
Also used : MaterialConfigs(com.thoughtworks.go.config.materials.MaterialConfigs) SvnMaterialConfig(com.thoughtworks.go.config.materials.svn.SvnMaterialConfig) GoConfigMother(com.thoughtworks.go.helper.GoConfigMother) Test(org.junit.jupiter.api.Test)

Aggregations

SvnMaterialConfig (com.thoughtworks.go.config.materials.svn.SvnMaterialConfig)92 Test (org.junit.jupiter.api.Test)60 MaterialConfigs (com.thoughtworks.go.config.materials.MaterialConfigs)25 P4MaterialConfig (com.thoughtworks.go.config.materials.perforce.P4MaterialConfig)15 GitMaterialConfig (com.thoughtworks.go.config.materials.git.GitMaterialConfig)12 DependencyMaterialConfig (com.thoughtworks.go.config.materials.dependency.DependencyMaterialConfig)11 HgMaterialConfig (com.thoughtworks.go.config.materials.mercurial.HgMaterialConfig)11 GoCipher (com.thoughtworks.go.security.GoCipher)11 CaseInsensitiveString (com.thoughtworks.go.config.CaseInsensitiveString)9 PluggableSCMMaterialConfig (com.thoughtworks.go.config.materials.PluggableSCMMaterialConfig)9 TfsMaterialConfig (com.thoughtworks.go.config.materials.tfs.TfsMaterialConfig)8 Test (org.junit.Test)8 PipelineConfig (com.thoughtworks.go.config.PipelineConfig)7 PackageMaterialConfig (com.thoughtworks.go.config.materials.PackageMaterialConfig)6 MaterialConfig (com.thoughtworks.go.domain.materials.MaterialConfig)5 SvnMaterial (com.thoughtworks.go.config.materials.svn.SvnMaterial)4 SvnCommand (com.thoughtworks.go.domain.materials.svn.SvnCommand)4 SCMs (com.thoughtworks.go.domain.scm.SCMs)3 GoConfigMother (com.thoughtworks.go.helper.GoConfigMother)3 SvnTestRepo (com.thoughtworks.go.helper.SvnTestRepo)3