use of com.thoughtworks.go.plugin.domain.common.PluginConfiguration in project gocd by gocd.
the class ElasticAgentExtensionV5Test method shouldGetClusterProfileMetadata.
@Test
public void shouldGetClusterProfileMetadata() {
String responseBody = "[{\"key\":\"Username\",\"metadata\":{\"required\":true,\"secure\":false}},{\"key\":\"Password\",\"metadata\":{\"required\":true,\"secure\":true}}]";
when(pluginManager.submitTo(eq(PLUGIN_ID), eq(ELASTIC_AGENT_EXTENSION), requestArgumentCaptor.capture())).thenReturn(DefaultGoPluginApiResponse.success(responseBody));
final List<PluginConfiguration> metadata = extensionV5.getClusterProfileMetadata(PLUGIN_ID);
assertThat(metadata, hasSize(2));
assertThat(metadata, containsInAnyOrder(new PluginConfiguration("Username", new Metadata(true, false)), new PluginConfiguration("Password", new Metadata(true, true))));
assertExtensionRequest("5.0", REQUEST_GET_CLUSTER_PROFILE_METADATA, null);
}
use of com.thoughtworks.go.plugin.domain.common.PluginConfiguration in project gocd by gocd.
the class PluginSettingsTest method shouldAddConfigurationsToSettingsMapCorrectly.
@Test
public void shouldAddConfigurationsToSettingsMapCorrectly() throws CryptoException {
ArrayList<PluginConfiguration> pluginConfigurations = new ArrayList<>();
pluginConfigurations.add(new PluginConfiguration("k1", new Metadata(true, false)));
pluginConfigurations.add(new PluginConfiguration("k2", new Metadata(true, true)));
ConfigRepoPluginInfo pluginInfo = new ConfigRepoPluginInfo(null, null, new PluggableInstanceSettings(pluginConfigurations), new Capabilities());
ArrayList<ConfigurationProperty> configurationProperties = new ArrayList<>();
configurationProperties.add(new ConfigurationProperty(new ConfigurationKey("k1"), new ConfigurationValue("v1")));
configurationProperties.add(new ConfigurationProperty(new ConfigurationKey("k2"), new EncryptedConfigurationValue(new GoCipher().encrypt("v2"))));
PluginSettings pluginSettings = new PluginSettings(PLUGIN_ID);
pluginSettings.addConfigurations(pluginInfo, configurationProperties);
PluginSettingsConfiguration pluginSettingsProperties = pluginSettings.toPluginSettingsConfiguration();
assertThat(pluginSettingsProperties.size(), is(2));
assertThat(pluginSettingsProperties.get("k1").getValue(), is("v1"));
assertThat(pluginSettingsProperties.get("k2").getValue(), is("v2"));
}
use of com.thoughtworks.go.plugin.domain.common.PluginConfiguration in project gocd by gocd.
the class PluginSettingsTest method shouldEncryptedValuesForSecureProperties.
@Test
public void shouldEncryptedValuesForSecureProperties() throws CryptoException {
ArrayList<PluginConfiguration> pluginConfigurations = new ArrayList<>();
pluginConfigurations.add(new PluginConfiguration("k1", new Metadata(true, false)));
pluginConfigurations.add(new PluginConfiguration("k2", new Metadata(true, true)));
ConfigRepoPluginInfo pluginInfo = new ConfigRepoPluginInfo(null, null, new PluggableInstanceSettings(pluginConfigurations), new Capabilities());
ConfigurationProperty configProperty1 = new ConfigurationProperty(new ConfigurationKey("k1"), new ConfigurationValue("v1"));
ConfigurationProperty configProperty2 = new ConfigurationProperty(new ConfigurationKey("k2"), new EncryptedConfigurationValue(new GoCipher().encrypt("v2")));
ArrayList<ConfigurationProperty> configurationProperties = new ArrayList<>();
configurationProperties.add(configProperty1);
configurationProperties.add(configProperty2);
PluginSettings pluginSettings = new PluginSettings(PLUGIN_ID);
pluginSettings.addConfigurations(pluginInfo, configurationProperties);
List<ConfigurationProperty> pluginSettingsProperties = pluginSettings.getPluginSettingsProperties();
assertThat(pluginSettingsProperties.size(), is(2));
assertThat(pluginSettingsProperties.get(0), is(configProperty1));
assertThat(pluginSettingsProperties.get(1), is(configProperty2));
}
use of com.thoughtworks.go.plugin.domain.common.PluginConfiguration in project gocd by gocd.
the class MagicalGoConfigXmlLoaderTest method shouldEncryptPluggablePublishArtifactProperties.
@Test
void shouldEncryptPluggablePublishArtifactProperties() throws Exception {
PluginDescriptor pluginDescriptor = GoPluginDescriptor.builder().id("cd.go.artifact.docker.registry").version("1.0").build();
PluginConfiguration buildFile = new PluginConfiguration("BuildFile", new Metadata(false, false));
PluginConfiguration image = new PluginConfiguration("Image", new Metadata(false, true));
PluginConfiguration tag = new PluginConfiguration("Tag", new Metadata(false, false));
PluginConfiguration fetchProperty = new PluginConfiguration("FetchProperty", new Metadata(false, true));
PluginConfiguration fetchTag = new PluginConfiguration("Tag", new Metadata(false, false));
PluginConfiguration registryUrl = new PluginConfiguration("RegistryURL", new Metadata(true, false));
PluginConfiguration username = new PluginConfiguration("Username", new Metadata(false, false));
PluginConfiguration password = new PluginConfiguration("Password", new Metadata(false, true));
PluggableInstanceSettings storeConfigSettings = new PluggableInstanceSettings(asList(registryUrl, username, password));
PluggableInstanceSettings publishArtifactSettings = new PluggableInstanceSettings(asList(buildFile, image, tag));
PluggableInstanceSettings fetchArtifactSettings = new PluggableInstanceSettings(asList(fetchProperty, fetchTag));
ArtifactPluginInfo artifactPluginInfo = new ArtifactPluginInfo(pluginDescriptor, storeConfigSettings, publishArtifactSettings, fetchArtifactSettings, null, new Capabilities());
ArtifactMetadataStore.instance().setPluginInfo(artifactPluginInfo);
String content = goConfigMigration.upgradeIfNecessary(IOUtils.toString(getClass().getResource("/data/pluggable_artifacts_with_params.xml"), UTF_8));
CruiseConfig config = xmlLoader.loadConfigHolder(content).configForEdit;
PipelineConfig ancestor = config.pipelineConfigByName(new CaseInsensitiveString("ancestor"));
PipelineConfig parent = config.pipelineConfigByName(new CaseInsensitiveString("parent"));
PipelineConfig child = config.pipelineConfigByName(new CaseInsensitiveString("child"));
Configuration ancestorPublishArtifactConfig = ancestor.get(0).getJobs().first().artifactTypeConfigs().getPluggableArtifactConfigs().get(0).getConfiguration();
Configuration parentPublishArtifactConfig = parent.get(0).getJobs().first().artifactTypeConfigs().getPluggableArtifactConfigs().get(0).getConfiguration();
Configuration childFetchArtifactFromAncestorConfig = ((FetchPluggableArtifactTask) child.get(0).getJobs().first().tasks().get(0)).getConfiguration();
Configuration childFetchArtifactFromParentConfig = ((FetchPluggableArtifactTask) child.get(0).getJobs().first().tasks().get(1)).getConfiguration();
ArtifactStore dockerhubStore = config.getArtifactStores().first();
assertConfigProperty(ancestorPublishArtifactConfig, "Image", "IMAGE_SECRET", true);
assertConfigProperty(ancestorPublishArtifactConfig, "Tag", "ancestor_tag_${GO_PIPELINE_COUNTER}", false);
assertConfigProperty(parentPublishArtifactConfig, "Image", "IMAGE_SECRET", true);
assertConfigProperty(parentPublishArtifactConfig, "Tag", "parent_tag_${GO_PIPELINE_COUNTER}", false);
assertConfigProperty(childFetchArtifactFromAncestorConfig, "FetchProperty", "SECRET", true);
assertConfigProperty(childFetchArtifactFromAncestorConfig, "Tag", "ancestor_tag", false);
assertConfigProperty(childFetchArtifactFromParentConfig, "FetchProperty", "SECRET", true);
assertConfigProperty(childFetchArtifactFromParentConfig, "Tag", "parent_tag", false);
assertConfigProperty(dockerhubStore, "RegistryURL", "https://index.docker.io/v1/", false);
assertConfigProperty(dockerhubStore, "Username", "docker-user", false);
assertConfigProperty(dockerhubStore, "Password", "SECRET", true);
}
use of com.thoughtworks.go.plugin.domain.common.PluginConfiguration in project gocd by gocd.
the class CachedGoConfigIntegrationTest method setupMetadataForPlugin.
private void setupMetadataForPlugin() {
PluginDescriptor pluginDescriptor = GoPluginDescriptor.builder().id("cd.go.artifact.docker.registry").build();
PluginConfiguration buildFile = new PluginConfiguration("BuildFile", new Metadata(false, false));
PluginConfiguration image = new PluginConfiguration("Image", new Metadata(false, true));
PluginConfiguration tag = new PluginConfiguration("Tag", new Metadata(false, false));
PluginConfiguration fetchProperty = new PluginConfiguration("FetchProperty", new Metadata(false, true));
PluginConfiguration fetchTag = new PluginConfiguration("Tag", new Metadata(false, false));
PluginConfiguration registryUrl = new PluginConfiguration("RegistryURL", new Metadata(true, false));
PluginConfiguration username = new PluginConfiguration("Username", new Metadata(false, false));
PluginConfiguration password = new PluginConfiguration("Password", new Metadata(false, true));
PluggableInstanceSettings storeConfigSettings = new PluggableInstanceSettings(asList(registryUrl, username, password));
PluggableInstanceSettings publishArtifactSettings = new PluggableInstanceSettings(asList(buildFile, image, tag));
PluggableInstanceSettings fetchArtifactSettings = new PluggableInstanceSettings(asList(fetchProperty, fetchTag));
ArtifactPluginInfo artifactPluginInfo = new ArtifactPluginInfo(pluginDescriptor, storeConfigSettings, publishArtifactSettings, fetchArtifactSettings, null, new Capabilities());
ArtifactMetadataStore.instance().setPluginInfo(artifactPluginInfo);
}
Aggregations