Skip to content

Commit 94c60c5

Browse files
authored
Add NewerNoncurrentVersions in LifecycleConfig (#1469)
Signed-off-by: Bala.FA <[email protected]>
1 parent a7b443d commit 94c60c5

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
runs-on: ${{ matrix.os }}
3131
strategy:
3232
matrix:
33-
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
33+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13.0"]
3434
os: [ubuntu-latest, windows-latest, macos-latest]
3535

3636
steps:

minio/lifecycleconfig.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,11 @@ def __init__(
118118
self,
119119
noncurrent_days: int | None = None,
120120
storage_class: str | None = None,
121+
newer_noncurrent_versions: int | None = None,
121122
):
122123
self._noncurrent_days = noncurrent_days
123124
self._storage_class = storage_class
125+
self._newer_noncurrent_versions = newer_noncurrent_versions
124126

125127
@property
126128
def noncurrent_days(self) -> int | None:
@@ -132,6 +134,11 @@ def storage_class(self) -> str | None:
132134
"""Get storage class."""
133135
return self._storage_class
134136

137+
@property
138+
def newer_noncurrent_versions(self) -> int | None:
139+
"""Get Newer Noncurrent versions."""
140+
return self._newer_noncurrent_versions
141+
135142
@classmethod
136143
def fromxml(cls: Type[B], element: ET.Element) -> B:
137144
"""Create new object with values from XML element."""
@@ -140,9 +147,11 @@ def fromxml(cls: Type[B], element: ET.Element) -> B:
140147
find(element, "NoncurrentVersionTransition", True),
141148
)
142149
noncurrent_days = findtext(element, "NoncurrentDays")
150+
versions = findtext(element, "NewerNoncurrentVersions")
143151
return cls(
144152
int(noncurrent_days) if noncurrent_days else None,
145153
findtext(element, "StorageClass"),
154+
int(versions) if versions else None,
146155
)
147156

148157
def toxml(self, element: ET.Element | None) -> ET.Element:
@@ -154,6 +163,9 @@ def toxml(self, element: ET.Element | None) -> ET.Element:
154163
SubElement(element, "NoncurrentDays", str(self._noncurrent_days))
155164
if self._storage_class:
156165
SubElement(element, "StorageClass", self._storage_class)
166+
if self._newer_noncurrent_versions:
167+
SubElement(element, "NewerNoncurrentVersions",
168+
str(self._newer_noncurrent_versions))
157169
return element
158170

159171

@@ -163,14 +175,21 @@ def toxml(self, element: ET.Element | None) -> ET.Element:
163175
class NoncurrentVersionExpiration:
164176
"""Noncurrent version expiration."""
165177

166-
def __init__(self, noncurrent_days: int | None = None):
178+
def __init__(self, noncurrent_days: int | None = None,
179+
newer_noncurrent_versions: int | None = None):
167180
self._noncurrent_days = noncurrent_days
181+
self._newer_noncurrent_versions = newer_noncurrent_versions
168182

169183
@property
170184
def noncurrent_days(self) -> int | None:
171185
"""Get Noncurrent days."""
172186
return self._noncurrent_days
173187

188+
@property
189+
def newer_noncurrent_versions(self) -> int | None:
190+
"""Get Newer Noncurrent versions."""
191+
return self._newer_noncurrent_versions
192+
174193
@classmethod
175194
def fromxml(cls: Type[C], element: ET.Element) -> C:
176195
"""Create new object with values from XML element."""
@@ -179,7 +198,9 @@ def fromxml(cls: Type[C], element: ET.Element) -> C:
179198
find(element, "NoncurrentVersionExpiration", True),
180199
)
181200
noncurrent_days = findtext(element, "NoncurrentDays")
182-
return cls(int(noncurrent_days) if noncurrent_days else None)
201+
versions = findtext(element, "NewerNoncurrentVersions")
202+
return cls(int(noncurrent_days) if noncurrent_days else None,
203+
int(versions) if versions else None)
183204

184205
def toxml(self, element: ET.Element | None) -> ET.Element:
185206
"""Convert to XML."""
@@ -188,6 +209,9 @@ def toxml(self, element: ET.Element | None) -> ET.Element:
188209
element = SubElement(element, "NoncurrentVersionExpiration")
189210
if self._noncurrent_days:
190211
SubElement(element, "NoncurrentDays", str(self._noncurrent_days))
212+
if self._newer_noncurrent_versions:
213+
SubElement(element, "NewerNoncurrentVersions",
214+
str(self._newer_noncurrent_versions))
191215
return element
192216

193217

0 commit comments

Comments
 (0)