Search in sources :

Example 11 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginServiceTest method shouldUpdatePluginSettingsWithErrorsIfExists.

@Test
public void shouldUpdatePluginSettingsWithErrorsIfExists() {
    PluginSettingsMetadataStore.getInstance().addMetadataFor("plugin-id-4", PluginConstants.NOTIFICATION_EXTENSION, null, null);
    when(notificationExtension.canHandlePlugin("plugin-id-4")).thenReturn(true);
    ValidationResult validationResult = new ValidationResult();
    validationResult.addError(new ValidationError("p4-k1", "m1"));
    validationResult.addError(new ValidationError("p4-k3", "m3"));
    when(notificationExtension.validatePluginSettings(eq("plugin-id-4"), any(PluginSettingsConfiguration.class))).thenReturn(validationResult);
    Map<String, String> parameterMap = new HashMap<>();
    parameterMap.put("p4-k1", "v1");
    parameterMap.put("p4-k2", "v2");
    parameterMap.put("p4-k3", "v3");
    PluginSettings pluginSettings = new PluginSettings("plugin-id-4");
    pluginSettings.populateSettingsMap(parameterMap);
    pluginService.validatePluginSettingsFor(pluginSettings);
    assertThat(pluginSettings.hasErrors(), is(true));
    assertThat(pluginSettings.getErrorFor("p4-k1"), is(Arrays.asList("m1")));
    assertThat(pluginSettings.getErrorFor("p4-k3"), is(Arrays.asList("m3")));
}
Also used : PluginSettings(com.thoughtworks.go.server.domain.PluginSettings) ValidationError(com.thoughtworks.go.plugin.api.response.validation.ValidationError) PluginSettingsConfiguration(com.thoughtworks.go.plugin.access.common.settings.PluginSettingsConfiguration) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) ValidationResult(com.thoughtworks.go.plugin.api.response.validation.ValidationResult) Test(org.junit.Test)

Example 12 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginServiceTest method shouldNotSavePluginSettingsIfPluginDoesNotExist.

@Test
public void shouldNotSavePluginSettingsIfPluginDoesNotExist() {
    PluginSettings pluginSettings = new PluginSettings("non-existent-plugin");
    Username currentUser = new Username("admin");
    HttpLocalizedOperationResult result = new HttpLocalizedOperationResult();
    when(securityService.isUserAdmin(currentUser)).thenReturn(true);
    for (GoPluginExtension extension : extensions) {
        when(extension.canHandlePlugin("non-existent-plugin")).thenReturn(false);
    }
    pluginService.savePluginSettings(currentUser, result, pluginSettings);
    assertThat(result.httpCode(), is(422));
    assertThat(result.toString(), containsString("Plugin 'non-existent-plugin' does not exist or does not implement settings validation"));
}
Also used : GoPluginExtension(com.thoughtworks.go.plugin.access.common.settings.GoPluginExtension) HttpLocalizedOperationResult(com.thoughtworks.go.server.service.result.HttpLocalizedOperationResult) Username(com.thoughtworks.go.server.domain.Username) PluginSettings(com.thoughtworks.go.server.domain.PluginSettings) Test(org.junit.Test)

Example 13 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginSettingsRequestProcessor method process.

@Override
public GoApiResponse process(GoPluginDescriptor pluginDescriptor, GoApiRequest goPluginApiRequest) {
    try {
        GoPluginExtension extension = extensionFor(pluginDescriptor.id(), goPluginApiRequest.pluginIdentifier().getExtension());
        PluginSettings pluginSettings = pluginSettingsFor(pluginDescriptor.id());
        DefaultGoApiResponse response = new DefaultGoApiResponse(200);
        response.setResponseBody(extension.pluginSettingsJSON(pluginDescriptor.id(), pluginSettings.getSettingsAsKeyValuePair()));
        return response;
    } catch (Exception e) {
        LOGGER.error(format("Error processing PluginSettings request from plugin: %s.", pluginDescriptor.id()), e);
        DefaultGoApiResponse errorResponse = new DefaultGoApiResponse(400);
        errorResponse.setResponseBody(format("Error while processing get PluginSettings request - %s", e.getMessage()));
        return errorResponse;
    }
}
Also used : GoPluginExtension(com.thoughtworks.go.plugin.access.common.settings.GoPluginExtension) DefaultGoApiResponse(com.thoughtworks.go.plugin.api.response.DefaultGoApiResponse) PluginSettings(com.thoughtworks.go.server.domain.PluginSettings)

Example 14 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginSettingsRequestProcessor method pluginSettingsFor.

private PluginSettings pluginSettingsFor(String pluginId) {
    Plugin plugin = pluginSqlMapDao.findPlugin(pluginId);
    PluginSettings pluginSettings = new PluginSettings(pluginId);
    if (!(plugin instanceof NullPlugin)) {
        pluginSettings.populateSettingsMap(plugin);
    }
    return pluginSettings;
}
Also used : PluginSettings(com.thoughtworks.go.server.domain.PluginSettings) NullPlugin(com.thoughtworks.go.domain.NullPlugin) Plugin(com.thoughtworks.go.domain.Plugin) NullPlugin(com.thoughtworks.go.domain.NullPlugin)

Example 15 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginService method isRequestFresh.

private boolean isRequestFresh(String md5, PluginSettings pluginSettings, LocalizedOperationResult result) {
    PluginSettings storedPluginSettings = loadStoredPluginSettings(pluginSettings.getPluginId());
    if (storedPluginSettings == null) {
        result.notFound(LocalizedMessage.string("RESOURCE_NOT_FOUND", "Plugin Settings", pluginSettings.getPluginId()), HealthStateType.notFound());
        return false;
    }
    boolean freshRequest = entityHashingService.md5ForEntity(pluginSettings).equals(md5);
    if (!freshRequest) {
        result.stale(LocalizedMessage.string("STALE_RESOURCE_CONFIG", "Plugin Settings", pluginSettings.getPluginId()));
    }
    return freshRequest;
}
Also used : PluginSettings(com.thoughtworks.go.server.domain.PluginSettings)

Aggregations

PluginSettings (com.thoughtworks.go.server.domain.PluginSettings)26 Test (org.junit.Test)20 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)10 PluginSettingsConfiguration (com.thoughtworks.go.plugin.access.common.settings.PluginSettingsConfiguration)9 ValidationResult (com.thoughtworks.go.plugin.api.response.validation.ValidationResult)9 NullPlugin (com.thoughtworks.go.domain.NullPlugin)8 Plugin (com.thoughtworks.go.domain.Plugin)8 Username (com.thoughtworks.go.server.domain.Username)8 HttpLocalizedOperationResult (com.thoughtworks.go.server.service.result.HttpLocalizedOperationResult)8 GoPluginExtension (com.thoughtworks.go.plugin.access.common.settings.GoPluginExtension)3 DefaultGoApiResponse (com.thoughtworks.go.plugin.api.response.DefaultGoApiResponse)2 ValidationError (com.thoughtworks.go.plugin.api.response.validation.ValidationError)2 LinkedHashMap (java.util.LinkedHashMap)1