Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
bde95f7
HDDS-11149. Add a maximum client version in the RequestFeatureValidat…
swamirishi Jul 12, 2024
f1676be
HDDS-11149. Set conditions default value to {}
swamirishi Jul 12, 2024
b77d1bf
Merge remote-tracking branch 'origin/master' into HDDS-11149
adoroszlai Jul 12, 2024
561d010
HDDS-11149. Create Base validator for generic version validation
swamirishi Jul 15, 2024
363d9fa
Merge remote-tracking branch 'apache/master' into HEAD
swamirishi Jul 15, 2024
e623fdb
HDDS-11149. Add register validator processor
swamirishi Jul 15, 2024
b270bf6
HDDS-11149. Fix checkstyle
swamirishi Jul 15, 2024
ca3746d
HDDS-11149. Fix findbugs & rat failures
swamirishi Jul 17, 2024
a84749b
HDDS-11149. Move to enum maps
swamirishi Jul 18, 2024
fc57929
HDDS-11149. Move validation to ozone-common and fix docs
swamirishi Jul 19, 2024
778229a
HDDS-11149. Fix typo while extracting version
swamirishi Jul 29, 2024
9cf34be
HDDS-11149. Address review comments
swamirishi Aug 12, 2024
66027c2
HDDS-11149. Change method name
swamirishi Dec 17, 2024
dc9f93b
Merge remote-tracking branch 'apache/master' into HEAD
swamirishi Dec 17, 2024
c33f78e
Revert "HDDS-11132. Revert client version bump done as part of HDDS-1…
swamirishi Dec 18, 2024
a394670
HDDS-11149. Address review comments
swamirishi Dec 18, 2024
d024eb9
HDDS-11149. Address review comments
swamirishi Dec 18, 2024
889e081
HDDS-11149. Address review comments
swamirishi Dec 18, 2024
436dfbd
HDDS-11149. Fix findbugs
swamirishi Dec 18, 2024
c1b690d
HDDS-11149. Fix annotation processor
swamirishi Dec 18, 2024
b9ef7d0
HDDS-11149. Fix annotation processor
swamirishi Dec 18, 2024
ba133d2
HDDS-11149. Fix package scanner prefix
swamirishi Dec 18, 2024
df698f8
HDDS-11149. Fix package scanner prefix
swamirishi Dec 19, 2024
0b5ceb5
HDDS-11149. Fix version values
swamirishi Dec 19, 2024
db76527
Merge remote-tracking branch 'apache/master' into HEAD
swamirishi Dec 19, 2024
49efb20
HDDS-11963. Unify client version and layout version under one interfa…
swamirishi Dec 19, 2024
b819b63
HDDS-11963. Fix rat failure
swamirishi Dec 19, 2024
bfa7618
HDDS-11963. Address review comments
swamirishi Dec 19, 2024
ded3450
HDDS-11963. Address review comments
swamirishi Dec 19, 2024
568603e
Merge remote-tracking branch 'origin/HDDS-11963' into HEAD
swamirishi Dec 19, 2024
2124f03
HDDS-11149. Merge with master
swamirishi Dec 19, 2024
4004663
HDDS-11149. Change validator key
swamirishi Dec 20, 2024
2337f72
Merge remote-tracking branch 'apache/master' into HEAD
swamirishi Dec 20, 2024
56e95eb
HDDS-11149. Fix test case
swamirishi Dec 20, 2024
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 @@ -28,6 +28,7 @@
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.Name;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.ExecutableType;
Expand Down Expand Up @@ -56,8 +57,8 @@
public class RequestFeatureValidatorProcessor extends AbstractProcessor {

public static final String ERROR_CONDITION_IS_EMPTY =
"RequestFeatureValidator has an empty condition list. Please define the"
+ " ValidationCondition in which the validator has to be applied.";
"RequestFeatureValidator has both an empty condition list & undefined max client version. Please define either"
+ " ValidationCondition or max client version in which the validator has to be applied.";
public static final String ERROR_ANNOTATED_ELEMENT_IS_NOT_A_METHOD =
"RequestFeatureValidator annotation is not applied to a method.";
public static final String ERROR_VALIDATOR_METHOD_HAS_TO_BE_STATIC =
Expand Down Expand Up @@ -94,12 +95,15 @@ public class RequestFeatureValidatorProcessor extends AbstractProcessor {
public static final String ANNOTATION_CONDITIONS_PROPERTY_NAME = "conditions";
public static final String ANNOTATION_PROCESSING_PHASE_PROPERTY_NAME =
"processingPhase";
public static final String ANNOTATION_MAX_CLIENT_VERSION_PROPERTY_NAME = "maxClientVersion";

public static final String PROCESSING_PHASE_PRE_PROCESS = "PRE_PROCESS";
public static final String PROCESSING_PHASE_POST_PROCESS = "POST_PROCESS";
public static final String ERROR_NO_PROCESSING_PHASE_DEFINED =
"RequestFeatureValidator has an invalid ProcessingPhase defined.";

public static final String MAX_CLIENT_VERSION_FUTURE_VERSION = "FUTURE_VERSION";

@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
Expand Down Expand Up @@ -199,16 +203,22 @@ private void checkMethodIsAnnotated(Element elem) {
private boolean checkAndEvaluateAnnotation(
AnnotationMirror methodAnnotation) {
boolean isPreprocessor = false;
boolean hasInvalidConditions = false;
boolean hasValidMaxClientVersions = false;
for (Entry<? extends ExecutableElement, ? extends AnnotationValue>
entry : methodAnnotation.getElementValues().entrySet()) {

if (hasInvalidValidationCondition(entry)) {
emitErrorMsg(ERROR_CONDITION_IS_EMPTY);
}

hasInvalidConditions = hasInvalidConditions || hasInvalidValidationCondition(entry);

if (isProcessingPhaseValue(entry)) {
isPreprocessor = evaluateProcessingPhase(entry);
}
hasValidMaxClientVersions = hasValidMaxClientVersions || hasValidMaxClientVersion(entry);
}
if (!hasValidMaxClientVersions && hasInvalidConditions) {
emitErrorMsg(ERROR_CONDITION_IS_EMPTY);
}

return isPreprocessor;
}

Expand All @@ -223,11 +233,25 @@ private boolean evaluateProcessingPhase(
return false;
}

private boolean hasValidMaxClientVersion(
Entry<? extends ExecutableElement, ? extends AnnotationValue> entry) {
if (isPropertyNamedAs(entry, ANNOTATION_MAX_CLIENT_VERSION_PROPERTY_NAME)) {
Name maxClientVersion = visit(entry, new MaxClientVersionVisitor());
return !maxClientVersion.contentEquals(MAX_CLIENT_VERSION_FUTURE_VERSION);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can also check for sanity of maxClientVersion if not equal to MAX_CLIENT_VERSION_FUTURE_VERSION i.e whether it lies in the same range as ClientVersion.values()

}
return false;
}

private boolean isProcessingPhaseValue(
Entry<? extends ExecutableElement, ? extends AnnotationValue> entry) {
return isPropertyNamedAs(entry, ANNOTATION_PROCESSING_PHASE_PROPERTY_NAME);
}

private boolean isMaxClientVersionValue(
Entry<? extends ExecutableElement, ? extends AnnotationValue> entry) {
return isPropertyNamedAs(entry, ANNOTATION_MAX_CLIENT_VERSION_PROPERTY_NAME);
}

private boolean hasInvalidValidationCondition(
Entry<? extends ExecutableElement, ? extends AnnotationValue> entry) {
return isPropertyNamedAs(entry, ANNOTATION_CONDITIONS_PROPERTY_NAME)
Expand Down Expand Up @@ -264,6 +288,18 @@ public Boolean visitArray(List<? extends AnnotationValue> vals,

}

private static class MaxClientVersionVisitor
extends SimpleAnnotationValueVisitor8<Name, Void> {

MaxClientVersionVisitor() {
}

@Override
public Name visitEnumConstant(VariableElement c, Void unused) {
return c.getSimpleName();
}
}

private static class ProcessingPhaseVisitor
extends SimpleAnnotationValueVisitor8<String, Void> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -460,9 +460,10 @@ public static OMRequest handleCreateBucketWithBucketLayoutDuringPreFinalize(
* they do not understand.
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateBucket
requestType = Type.CreateBucket,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add {} as default value here:

and tweak changes in @RequestFeatureValidator usage:

-      conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
+      maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT,

to reduce the patch. This changes only 1 line per item, instead of 3 lines + an unchanged line in the middle.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should make this so that ClientVersion.BUCKET_LAYOUT_SUPPORT is provided in the annotation for validators that deal with bucket layout. That would make this an exclusive upper bound on the client version that needs to be processed instead of an inclusive one.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also we can remove the if statements in the body now right?

)
public static OMRequest setDefaultBucketLayoutForOlderClients(OMRequest req,
ValidationContext ctx) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.Iterator;
import java.util.Map;

import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.hdds.utils.db.TableIterator;
Expand All @@ -34,7 +35,6 @@
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.RequestProcessingPhase;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -281,9 +281,10 @@ private boolean bucketContainsSnapshotInCache(
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.DeleteBucket
requestType = Type.DeleteBucket,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockBucketDeleteWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.apache.hadoop.hdds.client.ECReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfoGroup;
Expand Down Expand Up @@ -432,9 +433,10 @@ public static OMRequest disallowCreateDirectoryWithECReplicationConfig(
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateDirectory
requestType = Type.CreateDirectory,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockCreateDirectoryWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import com.google.common.base.Preconditions;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.OzoneConsts;
Expand Down Expand Up @@ -425,9 +426,10 @@ public static OMRequest disallowCreateFileWithECReplicationConfig(
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateFile
requestType = Type.CreateFile,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockCreateFileWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

import com.google.common.base.Preconditions;
import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
Expand Down Expand Up @@ -298,9 +299,10 @@ public static OMRequest disallowAllocateBlockWithECReplicationConfig(
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.AllocateBlock
requestType = Type.AllocateBlock,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockAllocateBlockWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.OzoneConfigKeys;
Expand Down Expand Up @@ -463,9 +464,10 @@ public static OMRequest disallowCommitKeyWithECReplicationConfig(
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CommitKey
requestType = Type.CommitKey,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockCommitKeyWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

import com.google.common.base.Preconditions;
import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.om.OMConfigKeys;
Expand Down Expand Up @@ -424,9 +425,10 @@ public static OMRequest disallowCreateKeyWithECReplicationConfig(
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateKey
requestType = Type.CreateKey,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockCreateKeyWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.Map;

import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.ozone.OmUtils;
Expand All @@ -31,7 +32,6 @@
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.RequestProcessingPhase;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer.ACLType;
import org.slf4j.Logger;
Expand Down Expand Up @@ -233,9 +233,10 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, TermIn
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.DeleteKey
requestType = Type.DeleteKey,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockDeleteKeyWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.Map;

import com.google.common.base.Preconditions;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.OzoneConsts;
Expand All @@ -31,7 +32,6 @@
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.RequestProcessingPhase;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer;
import org.apache.hadoop.ozone.security.acl.OzoneObj;
Expand Down Expand Up @@ -270,9 +270,10 @@ private Map<String, String> buildAuditMap(
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.RenameKey
requestType = Type.RenameKey,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockRenameKeyWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.hdds.utils.db.cache.CacheKey;
Expand All @@ -38,7 +39,6 @@
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.RequestProcessingPhase;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.key.OMKeysDeleteResponse;
Expand Down Expand Up @@ -351,9 +351,10 @@ protected static void addDeletedKeys(Map<String, String> auditMap,
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.DeleteKeys
requestType = Type.DeleteKeys,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockDeleteKeysWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package org.apache.hadoop.ozone.om.request.key;

import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.hdds.utils.db.cache.CacheKey;
Expand All @@ -36,7 +37,6 @@
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.RequestProcessingPhase;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.key.OMKeysRenameResponse;
Expand Down Expand Up @@ -297,9 +297,10 @@ private Map<String, String> buildAuditMap(Map<String, String> auditMap,
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.RenameKeys
requestType = Type.RenameKeys,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockRenameKeysWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.Map;

import com.google.common.collect.Lists;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.hadoop.ozone.OzoneAcl;
import org.apache.hadoop.ozone.OzoneConsts;
Expand All @@ -36,7 +37,6 @@
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.RequestProcessingPhase;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.key.acl.OMKeyAclResponse;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
Expand Down Expand Up @@ -165,9 +165,10 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, TermIn
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
conditions = {},
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.AddAcl
requestType = Type.AddAcl,
maxClientVersion = ClientVersion.ERASURE_CODING_SUPPORT
)
public static OMRequest blockAddAclWithBucketLayoutFromOldClient(
OMRequest req, ValidationContext ctx) throws IOException {
Expand Down
Loading