Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@
import org.apache.ignite.internal.codegen.TcpDiscoveryPingRequestSerializer;
import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer;
import org.apache.ignite.internal.codegen.TcpDiscoveryRingLatencyCheckMessageSerializer;
import org.apache.ignite.internal.codegen.UserAcceptedMessageSerializer;
import org.apache.ignite.internal.processors.authentication.UserAcceptedMessage;
import org.apache.ignite.plugin.extensions.communication.MessageFactory;
import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider;
import org.apache.ignite.spi.discovery.tcp.messages.InetAddressMessage;
Expand Down Expand Up @@ -62,6 +64,7 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider {
factory.register((short)-101, InetSocketAddressMessage::new, new InetSocketAddressMessageSerializer());
factory.register((short)-100, InetAddressMessage::new, new InetAddressMessageSerializer());

// TcpDiscoveryAbstractMessage
factory.register((short)0, TcpDiscoveryCheckFailedMessage::new, new TcpDiscoveryCheckFailedMessageSerializer());
factory.register((short)1, TcpDiscoveryPingRequest::new, new TcpDiscoveryPingRequestSerializer());
factory.register((short)2, TcpDiscoveryPingResponse::new, new TcpDiscoveryPingResponseSerializer());
Expand All @@ -76,5 +79,8 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider {
factory.register((short)11, TcpDiscoveryAuthFailedMessage::new, new TcpDiscoveryAuthFailedMessageSerializer());
factory.register((short)12, TcpDiscoveryDuplicateIdMessage::new, new TcpDiscoveryDuplicateIdMessageSerializer());
factory.register((short)13, TcpDiscoveryClientMetricsUpdateMessage::new, new TcpDiscoveryClientMetricsUpdateMessageSerializer());

// DiscoveryCustomMessage
factory.register((short)500, UserAcceptedMessage::new, new UserAcceptedMessageSerializer());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,50 +17,71 @@

package org.apache.ignite.internal.processors.authentication;

import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.Order;
import org.apache.ignite.internal.managers.communication.ErrorMessage;
import org.apache.ignite.internal.managers.discovery.DiscoCache;
import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.plugin.extensions.communication.Message;
import org.jetbrains.annotations.Nullable;

/**
* Is sent as an acknowledgement for end (with success or error) of user management operation on the cluster
* (see {@link UserProposedMessage} and {@link UserManagementOperation}).
*/
public class UserAcceptedMessage implements DiscoveryCustomMessage {
public class UserAcceptedMessage implements DiscoveryCustomMessage, Message {
/** */
private static final long serialVersionUID = 0L;

/** */
private final IgniteUuid id = IgniteUuid.randomUuid();
@Order(0)
private IgniteUuid id;

/** Operation ID. */
@Order(value = 1, method = "operationId")
@GridToStringInclude
private final IgniteUuid opId;
private IgniteUuid opId;

/** Error. */
private final IgniteCheckedException error;
/** Error message. */
@Order(value = 2, method = "errorMessage")
private ErrorMessage errMsg;

/** Constructor. */
public UserAcceptedMessage() {
// No-op.
}

/**
* @param opId THe ID of operation.
* @param opId The ID of operation.
* @param error Error.
*/
UserAcceptedMessage(IgniteUuid opId, IgniteCheckedException error) {
UserAcceptedMessage(IgniteUuid opId, Throwable error) {
assert opId != null || error != null;

id = IgniteUuid.randomUuid();

this.opId = opId;
this.error = error;

if (error != null)
errMsg = new ErrorMessage(error);
}

/** {@inheritDoc} */
@Override public IgniteUuid id() {
return id;
}

/**
* @param id Unique custom message ID.
*/
public void id(IgniteUuid id) {
this.id = id;
}

/** {@inheritDoc} */
@Nullable @Override public DiscoveryCustomMessage ackMessage() {
return null;
Expand All @@ -80,19 +101,45 @@ public class UserAcceptedMessage implements DiscoveryCustomMessage {
/**
* @return User operation ID.
*/
IgniteUuid operationId() {
public IgniteUuid operationId() {
return opId;
}

/**
* @param opId User operation ID.
*/
public void operationId(IgniteUuid opId) {
this.opId = opId;
}

/**
* @return Error message.
*/
public ErrorMessage errorMessage() {
return errMsg;
}

/**
* @param errMsg Error message.
*/
public void errorMessage(ErrorMessage errMsg) {
this.errMsg = errMsg;
}

/**
* @return Error.
*/
IgniteCheckedException error() {
return error;
Throwable error() {
return ErrorMessage.error(errMsg);
}

/** {@inheritDoc} */
@Override public String toString() {
return S.toString(UserAcceptedMessage.class, this);
}

/** {@inheritDoc} */
@Override public short directType() {
return 500;
}
}