@@ -920,6 +920,50 @@ def get_drbd_openers(session, args):
920920 util .SMlog ('linstor-manager:get_drbd_openers error: {}' .format (e ))
921921 raise
922922
923+ def drbd_properties (session , args ):
924+ group_name = args ['groupName' ]
925+
926+ linstor = LinstorVolumeManager (
927+ get_controller_uri (),
928+ group_name ,
929+ logger = util .SMlog
930+ )
931+
932+ return str (
933+ linstor ._linstor .resource_group_list_raise (
934+ filter_by_resource_groups = [linstor ._group_name ]
935+ ).data_v1 [0 ]['props' ]
936+ )
937+
938+
939+ def drbd_properties_set (session , args ):
940+ allowed = [
941+ 'c-min-rate' ,
942+ 'c-max-rate' ,
943+ 'resync-rate' ,
944+ 'c-plan-ahead' ,
945+ ]
946+ group_name = args ['groupName' ]
947+ properties = {arg : args [arg ] for arg in allowed if args .get (arg ) is not None }
948+
949+ set_properties = {f"DrbdOptions/PeerDevice/{ name } " : f"{ int (value )} " for name , value in properties .items () if value != '' }
950+ del_properties = [f"DrbdOptions/PeerDevice/{ name } " for name , value in properties .items () if value == '' ]
951+
952+ linstor = LinstorVolumeManager (
953+ get_controller_uri (),
954+ group_name ,
955+ logger = util .SMlog
956+ )
957+
958+ util .SMlog (f"linstor-manager:drbd_properties_set: set_properties={ set_properties } , del_properties={ del_properties } " )
959+
960+ return str (
961+ linstor ._linstor .resource_group_modify (
962+ linstor ._group_name ,
963+ property_dict = set_properties ,
964+ delete_props = del_properties
965+ )
966+ )
923967
924968class HealthCheckError (object ):
925969 __slots__ = ('data' )
@@ -1033,6 +1077,7 @@ def health_check(session, args):
10331077 result ['errors' ].append (HealthCheckError (
10341078 code = HealthCheckError .NODE_NOT_ONLINE ,
10351079 name = node_name ,
1080+
10361081 status = status
10371082 ))
10381083
@@ -1261,7 +1306,7 @@ if __name__ == '__main__':
12611306 'coalesce' : coalesce ,
12621307 'repair' : repair ,
12631308
1264- # Misc writters .
1309+ # Misc writers .
12651310 'deflate' : deflate ,
12661311
12671312 'lockVdi' : lock_vdi ,
@@ -1281,5 +1326,8 @@ if __name__ == '__main__':
12811326 'modifyNodeInterface' : modify_node_interface ,
12821327 'listNodeInterfaces' : list_node_interfaces ,
12831328 'getNodePreferredInterface' : get_node_preferred_interface ,
1284- 'setNodePreferredInterface' : set_node_preferred_interface
1329+ 'setNodePreferredInterface' : set_node_preferred_interface ,
1330+
1331+ 'drbdProperties' : drbd_properties ,
1332+ 'drbdPropertiesSet' : drbd_properties_set ,
12851333 })
0 commit comments