Search in sources :

Example 1 with ServerVersionAndStatusChecker

use of org.sonarsource.sonarlint.core.container.connected.validate.ServerVersionAndStatusChecker in project sonarlint-core by SonarSource.

the class WsHelperImpl method listOrganizations.

@Override
public List<RemoteOrganization> listOrganizations(ServerConfiguration serverConfig, @Nullable ProgressMonitor monitor) {
    SonarLintWsClient client = createClient(serverConfig);
    ServerVersionAndStatusChecker serverChecker = new ServerVersionAndStatusChecker(client);
    return listOrganizations(client, serverChecker, new ProgressWrapper(monitor));
}
Also used : ProgressWrapper(org.sonarsource.sonarlint.core.util.ProgressWrapper) ServerVersionAndStatusChecker(org.sonarsource.sonarlint.core.container.connected.validate.ServerVersionAndStatusChecker) SonarLintWsClient(org.sonarsource.sonarlint.core.container.connected.SonarLintWsClient)

Example 2 with ServerVersionAndStatusChecker

use of org.sonarsource.sonarlint.core.container.connected.validate.ServerVersionAndStatusChecker in project sonarlint-core by SonarSource.

the class WsHelperImpl method validateConnection.

static ValidationResult validateConnection(SonarLintWsClient client, @Nullable String organizationKey) {
    ServerVersionAndStatusChecker serverChecker = new ServerVersionAndStatusChecker(client);
    AuthenticationChecker authChecker = new AuthenticationChecker(client);
    try {
        ServerInfos serverStatus = serverChecker.checkVersionAndStatus();
        ValidationResult validateCredentials = authChecker.validateCredentials();
        if (validateCredentials.success() && organizationKey != null) {
            Version serverVersion = Version.create(serverStatus.getVersion());
            if (serverVersion.compareToIgnoreQualifier(Version.create(MIN_VERSION_FOR_ORGANIZATIONS)) < 0) {
                return new DefaultValidationResult(false, "No organization support for this server version: " + serverStatus.getVersion());
            }
            if (fetchOrganizations(client, organizationKey, new ProgressWrapper(null)).isEmpty()) {
                return new DefaultValidationResult(false, "No organizations found for key: " + organizationKey);
            }
        }
        return validateCredentials;
    } catch (UnsupportedServerException e) {
        return new DefaultValidationResult(false, e.getMessage());
    } catch (RuntimeException e) {
        throw SonarLintWrappedException.wrap(e);
    }
}
Also used : ProgressWrapper(org.sonarsource.sonarlint.core.util.ProgressWrapper) ServerVersionAndStatusChecker(org.sonarsource.sonarlint.core.container.connected.validate.ServerVersionAndStatusChecker) Version(org.sonarsource.sonarlint.core.plugin.Version) AuthenticationChecker(org.sonarsource.sonarlint.core.container.connected.validate.AuthenticationChecker) DefaultValidationResult(org.sonarsource.sonarlint.core.container.connected.validate.DefaultValidationResult) ServerInfos(org.sonarsource.sonarlint.core.proto.Sonarlint.ServerInfos) ValidationResult(org.sonarsource.sonarlint.core.client.api.connected.ValidationResult) DefaultValidationResult(org.sonarsource.sonarlint.core.container.connected.validate.DefaultValidationResult) UnsupportedServerException(org.sonarsource.sonarlint.core.client.api.exceptions.UnsupportedServerException)

Aggregations

ServerVersionAndStatusChecker (org.sonarsource.sonarlint.core.container.connected.validate.ServerVersionAndStatusChecker)2 ProgressWrapper (org.sonarsource.sonarlint.core.util.ProgressWrapper)2 ValidationResult (org.sonarsource.sonarlint.core.client.api.connected.ValidationResult)1 UnsupportedServerException (org.sonarsource.sonarlint.core.client.api.exceptions.UnsupportedServerException)1 SonarLintWsClient (org.sonarsource.sonarlint.core.container.connected.SonarLintWsClient)1 AuthenticationChecker (org.sonarsource.sonarlint.core.container.connected.validate.AuthenticationChecker)1 DefaultValidationResult (org.sonarsource.sonarlint.core.container.connected.validate.DefaultValidationResult)1 Version (org.sonarsource.sonarlint.core.plugin.Version)1 ServerInfos (org.sonarsource.sonarlint.core.proto.Sonarlint.ServerInfos)1