Skip to content

Commit f065ad4

Browse files
committed
HDDS-14347. add finalization validator for lifecycle config in OMLifecycleConfigurationDeleteRequest
1 parent 08bf79b commit f065ad4

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/lifecycle/OMLifecycleConfigurationDeleteRequest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,19 @@
3434
import org.apache.hadoop.ozone.om.execution.flowcontrol.ExecutionContext;
3535
import org.apache.hadoop.ozone.om.request.OMClientRequest;
3636
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
37+
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
38+
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
39+
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
3740
import org.apache.hadoop.ozone.om.response.OMClientResponse;
3841
import org.apache.hadoop.ozone.om.response.lifecycle.OMLifecycleConfigurationDeleteResponse;
42+
import org.apache.hadoop.ozone.om.upgrade.OMLayoutFeature;
3943
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.DeleteLifecycleConfigurationRequest;
4044
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.DeleteLifecycleConfigurationResponse;
4145
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest;
4246
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse;
47+
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type;
4348
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.UserInfo;
49+
import org.apache.hadoop.ozone.request.validation.RequestProcessingPhase;
4450
import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer;
4551
import org.apache.hadoop.ozone.security.acl.OzoneObj;
4652
import org.slf4j.Logger;
@@ -168,4 +174,21 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, Execut
168174
return omClientResponse;
169175
}
170176
}
177+
178+
@RequestFeatureValidator(
179+
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
180+
processingPhase = RequestProcessingPhase.PRE_PROCESS,
181+
requestType = Type.DeleteLifecycleConfiguration
182+
)
183+
public static OMRequest disallowDeleteLifecycleConfigurationBeforeFinalization(
184+
OMRequest req, ValidationContext ctx) throws OMException {
185+
if (!ctx.versionManager()
186+
.isAllowed(OMLayoutFeature.LIFECYCLE_SUPPORT)) {
187+
throw new OMException("Cluster does not have the Lifecycle Support"
188+
+ " feature finalized yet. Rejecting the request to delete lifecycle"
189+
+ " configuration. Please finalize the cluster upgrade and then try again.",
190+
OMException.ResultCodes.NOT_SUPPORTED_OPERATION_PRIOR_FINALIZATION);
191+
}
192+
return req;
193+
}
171194
}

0 commit comments

Comments
 (0)