Skip to content

Commit c87315c

Browse files
committed
responses: add layer_stack and layer_data props
1 parent 64fc74d commit c87315c

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313
- Added options dst_rsc_grp and force_rsc_grp to BackupShip, BackupRestore and BackupSchedule
1414
- resource_definition_clone: add layer_list parameter
1515
- resource_definition_clone: add resource_group parameter
16+
- Added responses ResourdeDfnLayerData object and some mor layer_stack props
1617

1718
## [1.23.1] - 2024-09-25
1819

linstor/responses.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -926,6 +926,31 @@ def port(self):
926926
def secret(self):
927927
return self._rest_data["secret"]
928928

929+
@property
930+
def peer_slots(self):
931+
return self._rest_data["peer_slots"]
932+
933+
934+
class ResourceDfnLayerData(RESTMessageResponse):
935+
def __init__(self, data):
936+
super(ResourceDfnLayerData, self).__init__(data)
937+
938+
@property
939+
def type(self):
940+
return self._rest_data["type"]
941+
942+
@property
943+
def drbd_resource(self):
944+
"""
945+
Gets the DRBD resource layer data if layer data is DRBD, otherwise None.
946+
947+
:return: None if it isn't a drbd resource, otherwise the DrbdResource object
948+
:rtype: Optional[DrbdLayer]
949+
"""
950+
if self.type == "DRBD":
951+
return DrbdLayer(self._rest_data["drbd"])
952+
return None
953+
929954

930955
class ResourceDefinition(RESTMessageResponse):
931956
def __init__(self, rest_data):
@@ -974,6 +999,10 @@ def properties(self):
974999
"""
9751000
return self._rest_data.get("props", {})
9761001

1002+
@property
1003+
def layer_data(self):
1004+
return [ResourceDfnLayerData(x) for x in self._rest_data.get("layer_data", [])]
1005+
9771006
@property
9781007
def drbd_data(self):
9791008
for layer in self._rest_data.get("layer_data", []):
@@ -1400,7 +1429,23 @@ def children(self):
14001429
:return: List of resource layer data children
14011430
:rtype: list[ResourceLayerData]
14021431
"""
1403-
return [ResourceLayerData(x) for x in self._rest_data.children]
1432+
return [ResourceLayerData(x) for x in self._rest_data.get('children', [])]
1433+
1434+
@property
1435+
def layer_stack(self):
1436+
"""
1437+
Returns a layer list, from top to bottom
1438+
:return:
1439+
:rtype: list[str]
1440+
"""
1441+
layers = [self.type]
1442+
1443+
def child_types(childs):
1444+
for subchild in childs:
1445+
layers.append(subchild.type)
1446+
child_types(subchild.children)
1447+
child_types(self.children)
1448+
return layers
14041449

14051450
@property
14061451
def type(self):

0 commit comments

Comments
 (0)