1313from django .utils .translation import gettext as _
1414
1515from backend .db_meta .api .cluster .base .graph import Graphic , Group , LineLabel
16- from backend .db_meta .enums import ClusterEntryRole
16+ from backend .db_meta .enums import ClusterEntryRole , InstanceInnerRole
1717from backend .db_meta .models import Cluster , StorageInstanceTuple
1818
1919logger = logging .getLogger ("root" )
@@ -43,9 +43,9 @@ def scan_cluster(cluster: Cluster) -> Graphic:
4343 proxy_instance_group = None
4444 for proxy_instance in cluster .proxyinstance_set .all ():
4545 dummy_proxy_instance_node , proxy_instance_group = graph .add_node (proxy_instance , proxy_instance_group )
46- backend_instance = proxy_instance .storageinstance .first ()
47- backend_instance_grp = graph .get_or_create_group (* Group .generate_group_info (backend_instance ))
48- graph .add_line (source = proxy_instance_group , target = backend_instance_grp , label = LineLabel .Access )
46+ master_backend_instance = proxy_instance .storageinstance .first ()
47+ master_backend_instance_grp = graph .get_or_create_group (* Group .generate_group_info (master_backend_instance ))
48+ graph .add_line (source = proxy_instance_group , target = master_backend_instance_grp , label = LineLabel .Access )
4949
5050 master_bind_entry_group = Group (node_id = "master_bind_entry_group" , group_name = _ ("访问入口(主)" ))
5151 for bind_entry in proxy_instance .bind_entry .filter (role = ClusterEntryRole .MASTER_ENTRY .value ):
@@ -54,8 +54,14 @@ def scan_cluster(cluster: Cluster) -> Graphic:
5454
5555 # 存储层访问入口
5656 nodes_bind_entry_group = Group (node_id = "nodes_bind_entry_group" , group_name = _ ("存储层访问入口" ))
57- for bind_entry in backend_instance .bind_entry .filter (role = ClusterEntryRole .NODE_ENTRY .value ):
57+ for bind_entry in master_backend_instance .bind_entry .filter (role = ClusterEntryRole .NODE_ENTRY .value ):
5858 dummy_be_node , nodes_bind_entry_group = graph .add_node (bind_entry , to_group = nodes_bind_entry_group )
59- graph .add_line (source = nodes_bind_entry_group , target = backend_instance_grp , label = LineLabel .Bind )
59+ graph .add_line (source = nodes_bind_entry_group , target = master_backend_instance_grp , label = LineLabel .Bind )
60+
61+ slave_instance = cluster .storageinstance_set .filter (instance_inner_role = InstanceInnerRole .SLAVE .value ).first ()
62+ slave_instance_group = graph .get_or_create_group (* Group .generate_group_info (slave_instance ))
63+ for bind_entry in master_backend_instance .bind_entry .filter (role = ClusterEntryRole .NODE_ENTRY .value ):
64+ dummy_be_node , nodes_bind_entry_group = graph .add_node (bind_entry , to_group = nodes_bind_entry_group )
65+ graph .add_line (source = proxy_instance_group , target = slave_instance_group , label = LineLabel .Bind )
6066
6167 return graph
0 commit comments