Skip to content
This repository was archived by the owner on Dec 12, 2025. It is now read-only.

Commit d873cbd

Browse files
authored
chore: improve code readability (#1180)
Signed-off-by: aimuz <[email protected]> Signed-off-by: aimuz <[email protected]>
1 parent cf80898 commit d873cbd

File tree

1 file changed

+18
-21
lines changed

1 file changed

+18
-21
lines changed

pkg/automationconfig/automation_config_builder.go

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -217,31 +217,36 @@ func (b *Builder) setFeatureCompatibilityVersionIfUpgradeIsHappening() error {
217217
}
218218

219219
func (b *Builder) Build() (AutomationConfig, error) {
220-
hostnames := make([]string, b.members+b.arbiters)
220+
if err := b.setFeatureCompatibilityVersionIfUpgradeIsHappening(); err != nil {
221+
return AutomationConfig{}, fmt.Errorf("can't build the automation config: %s", err)
222+
}
223+
224+
hostnames := make([]string, 0, b.members+b.arbiters)
221225

222226
// Create hostnames for data-bearing nodes. They start from 0
223227
for i := 0; i < b.members; i++ {
224-
hostnames[i] = fmt.Sprintf("%s-%d.%s", b.name, i, b.domain)
228+
hostnames = append(hostnames, fmt.Sprintf("%s-%d.%s", b.name, i, b.domain))
225229
}
226230

227231
// Create hostnames for arbiters. They are added right after the regular members
228-
for i := b.members; i < b.arbiters+b.members; i++ {
232+
for i := 0; i < b.arbiters; i++ {
229233
// Arbiters will be in b.name-arb-svc service
230-
hostnames[i] = fmt.Sprintf("%s-arb-%d.%s", b.name, i-b.members, b.arbiterDomain)
234+
hostnames = append(hostnames, fmt.Sprintf("%s-arb-%d.%s", b.name, i, b.arbiterDomain))
231235
}
232236

233237
members := make([]ReplicaSetMember, b.members+b.arbiters)
234238
processes := make([]Process, b.members+b.arbiters)
235239

236-
if err := b.setFeatureCompatibilityVersionIfUpgradeIsHappening(); err != nil {
237-
return AutomationConfig{}, fmt.Errorf("can't build the automation config: %s", err)
238-
}
239-
240240
dataDir := DefaultMongoDBDataDir
241241
if b.dataDir != "" {
242242
dataDir = b.dataDir
243243
}
244244

245+
fcv := versions.CalculateFeatureCompatibilityVersion(b.mongodbVersion)
246+
if len(b.fcv) > 0 {
247+
fcv = b.fcv
248+
}
249+
245250
for i, h := range hostnames {
246251
// Arbiters start counting from b.members and up
247252
isArbiter := i >= b.members
@@ -257,11 +262,6 @@ func (b *Builder) Build() (AutomationConfig, error) {
257262
replicaSetIndex = arbitersStartingIndex + processIndex
258263
}
259264

260-
fcv := versions.CalculateFeatureCompatibilityVersion(b.mongodbVersion)
261-
if b.fcv != "" {
262-
fcv = b.fcv
263-
}
264-
265265
// TODO: Replace with a Builder for Process.
266266
process := &Process{
267267
Name: toProcessName(b.name, processIndex, isArbiter),
@@ -296,14 +296,11 @@ func (b *Builder) Build() (AutomationConfig, error) {
296296
horizon = b.replicaSetHorizons[i]
297297
}
298298

299-
isVotingMember := true
300-
if !isArbiter && i >= (maxVotingMembers-b.arbiters) {
301-
// Arbiters can't be non-voting members
302-
// If there are more than 7 (maxVotingMembers) members on this Replica Set
303-
// those that lose right to vote should be the data-bearing nodes, not the
304-
// arbiters.
305-
isVotingMember = false
306-
}
299+
// Arbiters can't be non-voting members
300+
// If there are more than 7 (maxVotingMembers) members on this Replica Set
301+
// those that lose right to vote should be the data-bearing nodes, not the
302+
// arbiters.
303+
isVotingMember := isArbiter || i < (maxVotingMembers-b.arbiters)
307304

308305
// TODO: Replace with a Builder for ReplicaSetMember.
309306
members[i] = newReplicaSetMember(process.Name, replicaSetIndex, horizon, isArbiter, isVotingMember)

0 commit comments

Comments
 (0)