@@ -583,6 +583,7 @@ def get_add_relationship_to_meta_kwargs(self, replicaset_info: dict) -> dict:
583583 info ["bk_cloud_id" ] = self .payload ["config" ]["nodes" ][0 ]["bk_cloud_id" ]
584584 info ["machine_specs" ] = self .payload ["machine_specs" ]
585585 info ["immute_domain" ] = self .payload ["mongos" ]["domain" ]
586+ node_count = self .payload ["node_count" ]
586587 # mongos
587588 info ["proxies" ] = [
588589 {"ip" : node ["ip" ], "port" : self .payload ["mongos" ]["port" ]} for node in self .payload ["mongos" ]["nodes" ]
@@ -595,18 +596,31 @@ def get_add_relationship_to_meta_kwargs(self, replicaset_info: dict) -> dict:
595596 }
596597 if len (self .payload ["config" ]["nodes" ]) <= 11 :
597598 for index , node in enumerate (self .payload ["config" ]["nodes" ]):
598- if index == len (self .payload ["config" ]["nodes" ]) - 1 :
599- config ["nodes" ].append (
600- {"ip" : node ["ip" ], "port" : self .payload ["config" ]["port" ], "role" : self .instance_role [- 1 ]}
601- )
602- else :
599+ if node_count == 1 :
603600 config ["nodes" ].append (
604601 {
605602 "ip" : node ["ip" ],
606603 "port" : self .payload ["config" ]["port" ],
607604 "role" : self .instance_role [index ],
608605 }
609606 )
607+ elif node_count > 1 :
608+ if index == len (self .payload ["config" ]["nodes" ]) - 1 :
609+ config ["nodes" ].append (
610+ {
611+ "ip" : node ["ip" ],
612+ "port" : self .payload ["config" ]["port" ],
613+ "role" : self .instance_role [- 1 ],
614+ }
615+ )
616+ else :
617+ config ["nodes" ].append (
618+ {
619+ "ip" : node ["ip" ],
620+ "port" : self .payload ["config" ]["port" ],
621+ "role" : self .instance_role [index ],
622+ }
623+ )
610624 info ["configs" ].append (config )
611625
612626 # shard
@@ -618,14 +632,19 @@ def get_add_relationship_to_meta_kwargs(self, replicaset_info: dict) -> dict:
618632 }
619633 if len (shard ["nodes" ]) <= 11 :
620634 for index , node in enumerate (shard ["nodes" ]):
621- if index == len (shard ["nodes" ]) - 1 :
622- storage ["nodes" ].append (
623- {"role" : self .instance_role [- 1 ], "ip" : node ["ip" ], "port" : shard ["port" ]}
624- )
625- else :
635+ if node_count == 1 :
626636 storage ["nodes" ].append (
627637 {"role" : self .instance_role [index ], "ip" : node ["ip" ], "port" : shard ["port" ]}
628638 )
639+ elif node_count > 1 :
640+ if index == len (shard ["nodes" ]) - 1 :
641+ storage ["nodes" ].append (
642+ {"role" : self .instance_role [- 1 ], "ip" : node ["ip" ], "port" : shard ["port" ]}
643+ )
644+ else :
645+ storage ["nodes" ].append (
646+ {"role" : self .instance_role [index ], "ip" : node ["ip" ], "port" : shard ["port" ]}
647+ )
629648 info ["storages" ].append (storage )
630649 return info
631650
@@ -985,7 +1004,8 @@ def get_cluster_info_deinstall(self, cluster_id: int):
9851004 "instance_role" : member .role ,
9861005 }
9871006 )
988- nodes .append (backup_node )
1007+ if len (cluster_info .get_shards ()[0 ].members ) > 1 :
1008+ nodes .append (backup_node )
9891009 self .payload ["nodes" ] = nodes
9901010 elif cluster_info .cluster_type == ClusterType .MongoShardedCluster .value :
9911011 mongos = cluster_info .get_mongos ()
@@ -1019,7 +1039,8 @@ def get_cluster_info_deinstall(self, cluster_id: int):
10191039 "instance_role" : member .role ,
10201040 }
10211041 )
1022- nodes .append (backup_node )
1042+ if len (shard .members ) > 1 :
1043+ nodes .append (backup_node )
10231044 shard_info ["nodes" ] = nodes
10241045 shards_nodes .append (shard_info )
10251046 backup_node = {}
@@ -1040,7 +1061,8 @@ def get_cluster_info_deinstall(self, cluster_id: int):
10401061 "instance_role" : member .role ,
10411062 }
10421063 )
1043- config_nodes .append (backup_node )
1064+ if len (config .members ) > 1 :
1065+ config_nodes .append (backup_node )
10441066 self .payload ["mongos_nodes" ] = mongos_nodes
10451067 self .payload ["shards_nodes" ] = shards_nodes
10461068 self .payload ["config_nodes" ] = config_nodes
0 commit comments