@@ -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
930955class 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