diff --git a/CHANGELOG b/CHANGELOG index c5350c29..97363fe6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +Version 240.2.1 (Released 2024-06-30) +------------------------------------- +* #16618: Support data_reduction new fields +* #16462: Add pagination for get all assigned entities in SnapshotPolicy +* #16394: Move the lock_snapshots field from SnapshotPolicy to Schedule entity + Version 240.1.2 (Released 2024-02-08) ------------------------------------- * #16384: Add documentation for snapshot replication when creating async replica diff --git a/infinisdk/infinibox/capacities.py b/infinisdk/infinibox/capacities.py index 8772562b..16ca97ce 100644 --- a/infinisdk/infinibox/capacities.py +++ b/infinisdk/infinibox/capacities.py @@ -104,6 +104,15 @@ def get_total_spare_capacity(self): def get_data_reduction_ratio(self): return self._get_field("data_reduction_ratio") + def get_total_disk_usage_within_pools(self): + return self._get_capacity_field("total_disk_usage_within_pools") + + def get_total_thick_capacity_savings(self): + return self._get_capacity_field("total_thick_capacity_savings") + + def get_total_thin_capacity_savings(self): + return self._get_capacity_field("total_thin_capacity_savings") + def update_total_virtual_capacity(self, total_virtual_capacity): if not isinstance(total_virtual_capacity, int): if not isinstance(total_virtual_capacity, Capacity): diff --git a/infinisdk/infinibox/compatibility.py b/infinisdk/infinibox/compatibility.py index 58135d65..784f74f7 100644 --- a/infinisdk/infinibox/compatibility.py +++ b/infinisdk/infinibox/compatibility.py @@ -302,6 +302,12 @@ def has_snapshot_policies_enhancements(self): return feature_version >= 1 return self.get_parsed_system_version() >= "7.3.10" + def has_data_reduction_ratio(self): + feature_version = self._get_feature_version("data_reduction_ratio") + if feature_version is not NOTHING: + return feature_version >= 0 + return self.get_parsed_system_version() >= "8.0" + _VERSION_TUPLE_LEN = 5 diff --git a/infinisdk/infinibox/dataset.py b/infinisdk/infinibox/dataset.py index 313423aa..ccb6b7b6 100644 --- a/infinisdk/infinibox/dataset.py +++ b/infinisdk/infinibox/dataset.py @@ -312,6 +312,21 @@ class Dataset(InfiniBoxObject): is_sortable=True, feature_name="snapshot_policies_enhancements", ), + Field( + "disk_usage", + type=int, + feature_name="data_reduction_ratio", + ), + Field( + "data_reduction_ratio", + type=int, + feature_name="data_reduction_ratio", + ), + Field( + "capacity_savings_per_entity", + type=CapacityType, + feature_name="data_reduction_ratio", + ), ] PROVISIONING = namedtuple("Provisioning", ["Thick", "Thin"])("THICK", "THIN") diff --git a/infinisdk/infinibox/pool.py b/infinisdk/infinibox/pool.py index 5c151a07..5d32e9aa 100644 --- a/infinisdk/infinibox/pool.py +++ b/infinisdk/infinibox/pool.py @@ -174,6 +174,18 @@ class Pool(InfiniBoxObject): Field("vvol_volumes_count", type=int, feature_name="vvol_counts"), Field("vvol_entities_count", type=int, feature_name="vvol_counts"), Field("vvol_snapshots_count", type=int, feature_name="vvol_counts"), + Field("total_disk_usage", type=int, feature_name="data_reduction_ratio"), + Field( + "thick_capacity_savings", + type=CapacityType, + feature_name="data_reduction_ratio", + ), + Field( + "thin_capacity_savings", + type=CapacityType, + feature_name="data_reduction_ratio", + ), + Field("data_reduction_ratio", type=int, feature_name="data_reduction_ratio"), ] @classmethod diff --git a/setup.cfg b/setup.cfg index 1f2d558e..fa1b4e05 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,7 +11,7 @@ license = BSD author = Infinidat author_email = info@infinidat.com url = https://infinisdk.readthedocs.io/en/latest/ -version = 240.1.3 +version = 240.2.2 [entry_points] console_scripts = @@ -29,7 +29,7 @@ testing = click~=8.0.4 black~=21.8b0 pyforge waiting - infinisim~=240.1.0 + infinisim~=240.2.0 [tool:pytest] testpaths = infinisdk tests