@@ -926,6 +926,31 @@ def port(self):
926
926
def secret (self ):
927
927
return self ._rest_data ["secret" ]
928
928
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
+
929
954
930
955
class ResourceDefinition (RESTMessageResponse ):
931
956
def __init__ (self , rest_data ):
@@ -974,6 +999,10 @@ def properties(self):
974
999
"""
975
1000
return self ._rest_data .get ("props" , {})
976
1001
1002
+ @property
1003
+ def layer_data (self ):
1004
+ return [ResourceDfnLayerData (x ) for x in self ._rest_data .get ("layer_data" , [])]
1005
+
977
1006
@property
978
1007
def drbd_data (self ):
979
1008
for layer in self ._rest_data .get ("layer_data" , []):
@@ -1400,7 +1429,23 @@ def children(self):
1400
1429
:return: List of resource layer data children
1401
1430
:rtype: list[ResourceLayerData]
1402
1431
"""
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
1404
1449
1405
1450
@property
1406
1451
def type (self ):
0 commit comments