Enable console to set expired-object-all-versions (#3226)

Signed-off-by: Shubhendu Ram Tripathi <shubhendu@minio.io>
This commit is contained in:
Shubhendu
2024-03-12 01:55:06 +05:30
committed by GitHub
parent a838c763ea
commit 39bf627b0a
15 changed files with 123 additions and 3 deletions

View File

@@ -903,6 +903,7 @@ export interface ExpirationResponse {
/** @format int64 */
days?: number;
delete_marker?: boolean;
delete_all?: boolean;
/** @format int64 */
noncurrent_expiration_days?: number;
/** @format int64 */
@@ -958,6 +959,8 @@ export interface AddBucketLifecycle {
disable?: boolean;
/** Non required, toggle to disable or enable rule */
expired_object_delete_marker?: boolean;
/** Non required, toggle to disable or enable rule */
expired_object_delete_all?: boolean;
/**
* Non required, can be set in case of expiration is enabled
* @format int32
@@ -1005,6 +1008,8 @@ export interface UpdateBucketLifecycle {
disable?: boolean;
/** Non required, toggle to disable or enable rule */
expired_object_delete_marker?: boolean;
/** Non required, toggle to disable or enable rule */
expired_object_delete_all?: boolean;
/**
* Non required, can be set in case of expiration is enabled
* @format int32
@@ -1045,6 +1050,8 @@ export interface AddMultiBucketLifecycle {
storage_class?: string;
/** Non required, toggle to disable or enable rule */
expired_object_delete_marker?: boolean;
/** Non required, toggle to disable or enable rule */
expired_object_delete_all?: boolean;
/**
* Non required, can be set in case of expiration is enabled
* @format int32

View File

@@ -73,6 +73,8 @@ const AddLifecycleModal = ({
const [lifecycleDays, setLifecycleDays] = useState<string>("");
const [isFormValid, setIsFormValid] = useState<boolean>(false);
const [expiredObjectDM, setExpiredObjectDM] = useState<boolean>(false);
const [expiredAllVersionsDM, setExpiredAllVersionsDM] =
useState<boolean>(false);
const [loadingVersioning, setLoadingVersioning] = useState<boolean>(true);
const [expandedAdv, setExpandedAdv] = useState<boolean>(false);
const [expanded, setExpanded] = useState<boolean>(false);
@@ -183,6 +185,7 @@ const AddLifecycleModal = ({
prefix,
tags,
expired_object_delete_marker: expiredObjectDM,
expired_object_delete_all: expiredAllVersionsDM,
...rules,
};
@@ -437,6 +440,21 @@ const AddLifecycleModal = ({
"Remove the reference to the object if no versions are left"
}
/>
<Switch
value="expired_delete_all"
id="expired_delete_all"
name="expired_delete_all"
checked={expiredAllVersionsDM}
onChange={(
event: React.ChangeEvent<HTMLInputElement>,
) => {
setExpiredAllVersionsDM(event.target.checked);
}}
label={"Expire All Versions"}
description={
"Removes all the versions of the object already expired"
}
/>
</Grid>
</Accordion>
</Grid>

View File

@@ -62,6 +62,8 @@ const EditLifecycleConfiguration = ({
const [storageClass, setStorageClass] = useState("");
const [NCTransitionSC, setNCTransitionSC] = useState("");
const [expiredObjectDM, setExpiredObjectDM] = useState<boolean>(false);
const [expiredAllVersionsDM, setExpiredAllVersionsDM] =
useState<boolean>(false);
const [NCExpirationDays, setNCExpirationDays] = useState<string>("0");
const [NCTransitionDays, setNCTransitionDays] = useState<string>("0");
const [ilmType, setIlmType] = useState<"transition" | "expiry">("expiry");
@@ -199,6 +201,7 @@ const EditLifecycleConfiguration = ({
}
setExpiredObjectDM(!!lifecycleRule.expiration?.delete_marker);
setExpiredAllVersionsDM(!!lifecycleRule.expiration?.delete_all);
setPrefix(lifecycleRule.prefix || "");
if (lifecycleRule.tags) {
@@ -270,6 +273,7 @@ const EditLifecycleConfiguration = ({
prefix,
tags,
expired_object_delete_marker: expiredObjectDM,
expired_object_delete_all: expiredAllVersionsDM,
...rules,
};
@@ -498,6 +502,18 @@ const EditLifecycleConfiguration = ({
}}
label={"Expired Object Delete Marker"}
/>
<Switch
value="expired_delete_all"
id="expired_delete_all"
name="expired_delete_all"
checked={expiredAllVersionsDM}
onChange={(
event: React.ChangeEvent<HTMLInputElement>,
) => {
setExpiredAllVersionsDM(event.target.checked);
}}
label={"Expired All Versions"}
/>
</Accordion>
</Grid>
)}

View File

@@ -59,6 +59,8 @@ const AddBulkReplicationModal = ({
const [storageClass, setStorageClass] = useState("");
const [NCTransitionSC, setNCTransitionSC] = useState("");
const [expiredObjectDM, setExpiredObjectDM] = useState<boolean>(false);
const [expiredAllVersionsDM, setExpiredAllVersionsDM] =
useState<boolean>(false);
const [NCExpirationDays, setNCExpirationDays] = useState<string>("0");
const [NCTransitionDays, setNCTransitionDays] = useState<string>("0");
const [ilmType, setIlmType] = useState<"expiry" | "transition">("expiry");
@@ -172,6 +174,7 @@ const AddBulkReplicationModal = ({
prefix,
tags,
expired_object_delete_marker: expiredObjectDM,
expired_object_delete_all: expiredAllVersionsDM,
...rules,
};
@@ -344,6 +347,18 @@ const AddBulkReplicationModal = ({
}}
label={"Expired Object Delete Marker"}
/>
<Switch
value="expired_delete_all"
id="expired_delete_all"
name="expired_delete_all"
checked={expiredAllVersionsDM}
onChange={(
event: React.ChangeEvent<HTMLInputElement>,
) => {
setExpiredAllVersionsDM(event.target.checked);
}}
label={"Expired All Versions"}
/>
</fieldset>
</FormLayout>
</Fragment>

View File

@@ -41,6 +41,7 @@ interface IExpirationLifecycle {
days: number;
date: string;
delete_marker?: boolean;
delete_all?: boolean;
noncurrent_expiration_days?: number;
newer_noncurrent_expiration_versions?: number;
}