You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by il...@apache.org on 2019/04/18 11:31:00 UTC
[ignite] branch master updated: IGNITE-11753 Improve error message
on first connection attempt to secured cluster - Fixes #6469.
This is an automated email from the ASF dual-hosted git repository.
ilyak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 010f538 IGNITE-11753 Improve error message on first connection attempt to secured cluster - Fixes #6469.
010f538 is described below
commit 010f53822f8210990a0fc9a8b59011af10bc4dae
Author: Ilya Kasnacheev <il...@gmail.com>
AuthorDate: Thu Apr 18 14:30:19 2019 +0300
IGNITE-11753 Improve error message on first connection attempt to secured cluster - Fixes #6469.
Signed-off-by: Ilya Kasnacheev <il...@gmail.com>
---
.../java/org/apache/ignite/internal/client/GridClient.java | 9 ++++++++-
.../apache/ignite/internal/client/impl/GridClientImpl.java | 5 +++++
.../internal/client/router/impl/GridRouterClientImpl.java | 7 ++++++-
.../apache/ignite/internal/commandline/CommandHandler.java | 12 +++++++++++-
4 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/GridClient.java b/modules/core/src/main/java/org/apache/ignite/internal/client/GridClient.java
index 0cba502..0405a90 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/GridClient.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/GridClient.java
@@ -153,4 +153,11 @@ public interface GridClient extends AutoCloseable {
* {@code try-with-resources} statement.
*/
@Override public void close();
-}
\ No newline at end of file
+
+ /**
+ * If client was not connected topology, throw last error encountered.
+ *
+ * @throws GridClientException If client was not connected
+ */
+ public void throwLastError() throws GridClientException;
+}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java
index d045a62..21e09bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/GridClientImpl.java
@@ -349,6 +349,11 @@ public class GridClientImpl implements GridClient {
return top;
}
+ /** {@inheritDoc} */
+ @Override public void throwLastError() throws GridClientException {
+ top.nodes();
+ }
+
/**
* @return Connection manager.
*/
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java
index 59833fc..f3c9d39 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java
@@ -219,4 +219,9 @@ public class GridRouterClientImpl implements GridClient {
@Override public void close() {
clientImpl.close();
}
-}
\ No newline at end of file
+
+ /** {@inheritDoc} */
+ @Override public void throwLastError() throws GridClientException {
+ clientImpl.throwLastError();
+ }
+}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java
index 1ddeee2..f656d34 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java
@@ -53,6 +53,7 @@ import org.apache.ignite.internal.client.GridClientFactory;
import org.apache.ignite.internal.client.GridClientHandshakeException;
import org.apache.ignite.internal.client.GridClientNode;
import org.apache.ignite.internal.client.GridServerUnreachableException;
+import org.apache.ignite.internal.client.impl.GridClientImpl;
import org.apache.ignite.internal.client.impl.connection.GridClientConnectionResetException;
import org.apache.ignite.internal.client.ssl.GridSslBasicContextFactory;
import org.apache.ignite.internal.commandline.argument.CommandArgUtils;
@@ -2797,6 +2798,8 @@ public class CommandHandler {
boolean tryConnectAgain = true;
+ boolean suppliedAuth = !F.isEmpty(args.getUserName()) && !F.isEmpty(args.getPassword());
+
int tryConnectMaxCount = 3;
while (tryConnectAgain) {
@@ -2857,6 +2860,10 @@ public class CommandHandler {
}
try (GridClient client = GridClientFactory.start(clientCfg)) {
+ // If connection is unsuccessful, fail before doing any operations:
+ if (!client.connected())
+ client.throwLastError();
+
switch (args.command()) {
case ACTIVATE:
activate(client);
@@ -2896,13 +2903,16 @@ public class CommandHandler {
}
catch (Throwable e) {
if (tryConnectMaxCount > 0 && isAuthError(e)) {
- log("Authentication error, try connection again.");
+ log(suppliedAuth ?
+ "Authentication error, please try again." : "This cluster requires authentication.");
if (F.isEmpty(args.getUserName()))
args.setUserName(requestDataFromConsole("user: "));
args.setPassword(new String(requestPasswordFromConsole("password: ")));
+ suppliedAuth = true;
+
tryConnectAgain = true;
tryConnectMaxCount--;