Skip to content

Commit 0555a71

Browse files
committed
Merge branch 'master' into improvement/allow-early-cluster-inspections-2-fail
2 parents 9029318 + 5e3b732 commit 0555a71

File tree

9 files changed

+69
-44
lines changed

9 files changed

+69
-44
lines changed

pkg/apis/deployment/v1alpha/deployment_status_members.go

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -137,22 +137,47 @@ func (ds DeploymentStatusMembers) MemberStatusByPVCName(pvcName string) (MemberS
137137
return MemberStatus{}, 0, false
138138
}
139139

140-
// UpdateMemberStatus updates the given status in the given group.
141-
func (ds *DeploymentStatusMembers) UpdateMemberStatus(status MemberStatus, group ServerGroup) error {
140+
// Add adds the given status in the given group.
141+
func (ds *DeploymentStatusMembers) Add(status MemberStatus, group ServerGroup) error {
142142
var err error
143143
switch group {
144144
case ServerGroupSingle:
145-
err = ds.Single.Update(status)
145+
err = ds.Single.add(status)
146146
case ServerGroupAgents:
147-
err = ds.Agents.Update(status)
147+
err = ds.Agents.add(status)
148148
case ServerGroupDBServers:
149-
err = ds.DBServers.Update(status)
149+
err = ds.DBServers.add(status)
150150
case ServerGroupCoordinators:
151-
err = ds.Coordinators.Update(status)
151+
err = ds.Coordinators.add(status)
152152
case ServerGroupSyncMasters:
153-
err = ds.SyncMasters.Update(status)
153+
err = ds.SyncMasters.add(status)
154154
case ServerGroupSyncWorkers:
155-
err = ds.SyncWorkers.Update(status)
155+
err = ds.SyncWorkers.add(status)
156+
default:
157+
return maskAny(errors.Wrapf(NotFoundError, "ServerGroup %d is not known", group))
158+
}
159+
if err != nil {
160+
return maskAny(err)
161+
}
162+
return nil
163+
}
164+
165+
// Update updates the given status in the given group.
166+
func (ds *DeploymentStatusMembers) Update(status MemberStatus, group ServerGroup) error {
167+
var err error
168+
switch group {
169+
case ServerGroupSingle:
170+
err = ds.Single.update(status)
171+
case ServerGroupAgents:
172+
err = ds.Agents.update(status)
173+
case ServerGroupDBServers:
174+
err = ds.DBServers.update(status)
175+
case ServerGroupCoordinators:
176+
err = ds.Coordinators.update(status)
177+
case ServerGroupSyncMasters:
178+
err = ds.SyncMasters.update(status)
179+
case ServerGroupSyncWorkers:
180+
err = ds.SyncWorkers.update(status)
156181
default:
157182
return maskAny(errors.Wrapf(NotFoundError, "ServerGroup %d is not known", group))
158183
}
@@ -168,17 +193,17 @@ func (ds *DeploymentStatusMembers) RemoveByID(id string, group ServerGroup) erro
168193
var err error
169194
switch group {
170195
case ServerGroupSingle:
171-
err = ds.Single.RemoveByID(id)
196+
err = ds.Single.removeByID(id)
172197
case ServerGroupAgents:
173-
err = ds.Agents.RemoveByID(id)
198+
err = ds.Agents.removeByID(id)
174199
case ServerGroupDBServers:
175-
err = ds.DBServers.RemoveByID(id)
200+
err = ds.DBServers.removeByID(id)
176201
case ServerGroupCoordinators:
177-
err = ds.Coordinators.RemoveByID(id)
202+
err = ds.Coordinators.removeByID(id)
178203
case ServerGroupSyncMasters:
179-
err = ds.SyncMasters.RemoveByID(id)
204+
err = ds.SyncMasters.removeByID(id)
180205
case ServerGroupSyncWorkers:
181-
err = ds.SyncWorkers.RemoveByID(id)
206+
err = ds.SyncWorkers.removeByID(id)
182207
default:
183208
return maskAny(errors.Wrapf(NotFoundError, "ServerGroup %d is not known", group))
184209
}

pkg/apis/deployment/v1alpha/member_status_list.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func (l MemberStatusList) ElementByPVCName(pvcName string) (MemberStatus, bool)
7676

7777
// Add a member to the list.
7878
// Returns an AlreadyExistsError if the ID of the given member already exists.
79-
func (l *MemberStatusList) Add(m MemberStatus) error {
79+
func (l *MemberStatusList) add(m MemberStatus) error {
8080
src := *l
8181
for _, x := range src {
8282
if x.ID == m.ID {
@@ -89,7 +89,7 @@ func (l *MemberStatusList) Add(m MemberStatus) error {
8989

9090
// Update a member in the list.
9191
// Returns a NotFoundError if the ID of the given member cannot be found.
92-
func (l MemberStatusList) Update(m MemberStatus) error {
92+
func (l MemberStatusList) update(m MemberStatus) error {
9393
for i, x := range l {
9494
if x.ID == m.ID {
9595
l[i] = m
@@ -101,7 +101,7 @@ func (l MemberStatusList) Update(m MemberStatus) error {
101101

102102
// RemoveByID a member with given ID from the list.
103103
// Returns a NotFoundError if the ID of the given member cannot be found.
104-
func (l *MemberStatusList) RemoveByID(id string) error {
104+
func (l *MemberStatusList) removeByID(id string) error {
105105
src := *l
106106
for i, x := range src {
107107
if x.ID == id {

pkg/apis/deployment/v1alpha/member_status_list_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,32 +36,32 @@ func TestMemberStatusList(t *testing.T) {
3636
m3 := MemberStatus{ID: "m3"}
3737
assert.Equal(t, 0, len(*list))
3838

39-
assert.NoError(t, list.Add(m1))
39+
assert.NoError(t, list.add(m1))
4040
assert.Equal(t, 1, len(*list))
4141

42-
assert.NoError(t, list.Add(m2))
43-
assert.NoError(t, list.Add(m3))
42+
assert.NoError(t, list.add(m2))
43+
assert.NoError(t, list.add(m3))
4444
assert.Equal(t, 3, len(*list))
4545

46-
assert.Error(t, list.Add(m2))
46+
assert.Error(t, list.add(m2))
4747
assert.Equal(t, 3, len(*list))
4848

49-
assert.NoError(t, list.RemoveByID(m3.ID))
49+
assert.NoError(t, list.removeByID(m3.ID))
5050
assert.Equal(t, 2, len(*list))
5151
assert.False(t, list.ContainsID(m3.ID))
5252
assert.Equal(t, m1.ID, (*list)[0].ID)
5353
assert.Equal(t, m2.ID, (*list)[1].ID)
5454

5555
m2.PodName = "foo"
56-
assert.NoError(t, list.Update(m2))
56+
assert.NoError(t, list.update(m2))
5757
assert.Equal(t, 2, len(*list))
5858
assert.True(t, list.ContainsID(m2.ID))
5959
x, found := list.ElementByPodName("foo")
6060
assert.True(t, found)
6161
assert.Equal(t, "foo", x.PodName)
6262
assert.Equal(t, m2.ID, x.ID)
6363

64-
assert.NoError(t, list.Add(m3))
64+
assert.NoError(t, list.add(m3))
6565
assert.Equal(t, 3, len(*list))
6666
assert.Equal(t, m1.ID, (*list)[0].ID)
6767
assert.Equal(t, m2.ID, (*list)[1].ID)

pkg/deployment/members.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -90,68 +90,68 @@ func createMember(log zerolog.Logger, status *api.DeploymentStatus, group api.Se
9090
switch group {
9191
case api.ServerGroupSingle:
9292
log.Debug().Str("id", id).Msg("Adding single server")
93-
if err := status.Members.Single.Add(api.MemberStatus{
93+
if err := status.Members.Add(api.MemberStatus{
9494
ID: id,
9595
CreatedAt: metav1.Now(),
9696
Phase: api.MemberPhaseNone,
9797
PersistentVolumeClaimName: k8sutil.CreatePersistentVolumeClaimName(deploymentName, role, id),
9898
PodName: "",
99-
}); err != nil {
99+
}, group); err != nil {
100100
return "", maskAny(err)
101101
}
102102
case api.ServerGroupAgents:
103103
log.Debug().Str("id", id).Msg("Adding agent")
104-
if err := status.Members.Agents.Add(api.MemberStatus{
104+
if err := status.Members.Add(api.MemberStatus{
105105
ID: id,
106106
CreatedAt: metav1.Now(),
107107
Phase: api.MemberPhaseNone,
108108
PersistentVolumeClaimName: k8sutil.CreatePersistentVolumeClaimName(deploymentName, role, id),
109109
PodName: "",
110-
}); err != nil {
110+
}, group); err != nil {
111111
return "", maskAny(err)
112112
}
113113
case api.ServerGroupDBServers:
114114
log.Debug().Str("id", id).Msg("Adding dbserver")
115-
if err := status.Members.DBServers.Add(api.MemberStatus{
115+
if err := status.Members.Add(api.MemberStatus{
116116
ID: id,
117117
CreatedAt: metav1.Now(),
118118
Phase: api.MemberPhaseNone,
119119
PersistentVolumeClaimName: k8sutil.CreatePersistentVolumeClaimName(deploymentName, role, id),
120120
PodName: "",
121-
}); err != nil {
121+
}, group); err != nil {
122122
return "", maskAny(err)
123123
}
124124
case api.ServerGroupCoordinators:
125125
log.Debug().Str("id", id).Msg("Adding coordinator")
126-
if err := status.Members.Coordinators.Add(api.MemberStatus{
126+
if err := status.Members.Add(api.MemberStatus{
127127
ID: id,
128128
CreatedAt: metav1.Now(),
129129
Phase: api.MemberPhaseNone,
130130
PersistentVolumeClaimName: "",
131131
PodName: "",
132-
}); err != nil {
132+
}, group); err != nil {
133133
return "", maskAny(err)
134134
}
135135
case api.ServerGroupSyncMasters:
136136
log.Debug().Str("id", id).Msg("Adding syncmaster")
137-
if err := status.Members.SyncMasters.Add(api.MemberStatus{
137+
if err := status.Members.Add(api.MemberStatus{
138138
ID: id,
139139
CreatedAt: metav1.Now(),
140140
Phase: api.MemberPhaseNone,
141141
PersistentVolumeClaimName: "",
142142
PodName: "",
143-
}); err != nil {
143+
}, group); err != nil {
144144
return "", maskAny(err)
145145
}
146146
case api.ServerGroupSyncWorkers:
147147
log.Debug().Str("id", id).Msg("Adding syncworker")
148-
if err := status.Members.SyncWorkers.Add(api.MemberStatus{
148+
if err := status.Members.Add(api.MemberStatus{
149149
ID: id,
150150
CreatedAt: metav1.Now(),
151151
Phase: api.MemberPhaseNone,
152152
PersistentVolumeClaimName: "",
153153
PodName: "",
154-
}); err != nil {
154+
}, group); err != nil {
155155
return "", maskAny(err)
156156
}
157157
default:

pkg/deployment/reconcile/action_context.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func (ac *actionContext) UpdateMember(member api.MemberStatus) error {
153153
if !found {
154154
return maskAny(fmt.Errorf("Member %s not found", member.ID))
155155
}
156-
if err := status.Members.UpdateMemberStatus(member, group); err != nil {
156+
if err := status.Members.Update(member, group); err != nil {
157157
return maskAny(err)
158158
}
159159
if err := ac.context.UpdateStatus(status, lastVersion); err != nil {

pkg/deployment/resilience/member_failure.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func (r *Resilience) CheckMemberFailure() error {
7070
} else if failureAcceptable {
7171
log.Info().Msg("Member is not ready for long time, marking is failed")
7272
m.Phase = api.MemberPhaseFailed
73-
status.Members.UpdateMemberStatus(m, group)
73+
status.Members.Update(m, group)
7474
updateStatusNeeded = true
7575
} else {
7676
log.Warn().Msgf("Member is not ready for long time, but it is not safe to mark it a failed because: %s", reason)
@@ -89,7 +89,7 @@ func (r *Resilience) CheckMemberFailure() error {
8989
} else if failureAcceptable {
9090
log.Info().Msg("Member has terminated too often in recent history, marking is failed")
9191
m.Phase = api.MemberPhaseFailed
92-
status.Members.UpdateMemberStatus(m, group)
92+
status.Members.Update(m, group)
9393
updateStatusNeeded = true
9494
} else {
9595
log.Warn().Msgf("Member has terminated too often in recent history, but it is not safe to mark it a failed because: %s", reason)

pkg/deployment/resources/member_cleanup.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func (r *Resources) cleanupRemovedClusterMembers() error {
8989
if serverFound(m.ID) {
9090
// Member is (still) found, skip it
9191
if m.Conditions.Update(api.ConditionTypeMemberOfCluster, true, "", "") {
92-
list.Update(m)
92+
status.Members.Update(m, group)
9393
updateStatusNeeded = true
9494
}
9595
continue

pkg/deployment/resources/pod_creator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,7 @@ func (r *Resources) createPodForMember(spec api.DeploymentSpec, memberID string,
589589
m.Conditions.Remove(api.ConditionTypeReady)
590590
m.Conditions.Remove(api.ConditionTypeTerminated)
591591
m.Conditions.Remove(api.ConditionTypeAutoUpgrade)
592-
if err := status.Members.UpdateMemberStatus(m, group); err != nil {
592+
if err := status.Members.Update(m, group); err != nil {
593593
return maskAny(err)
594594
}
595595
if err := r.context.UpdateStatus(status, lastVersion); err != nil {

pkg/deployment/resources/pod_inspector.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ func (r *Resources) InspectPods(ctx context.Context) error {
147147
}
148148
}
149149
if updateMemberStatusNeeded {
150-
if err := status.Members.UpdateMemberStatus(memberStatus, group); err != nil {
150+
if err := status.Members.Update(memberStatus, group); err != nil {
151151
return maskAny(err)
152152
}
153153
}
@@ -181,7 +181,7 @@ func (r *Resources) InspectPods(ctx context.Context) error {
181181
m.RecentTerminations = append(m.RecentTerminations, now)
182182
}
183183
// Save it
184-
if err := status.Members.UpdateMemberStatus(m, group); err != nil {
184+
if err := status.Members.Update(m, group); err != nil {
185185
return maskAny(err)
186186
}
187187
}
@@ -205,7 +205,7 @@ func (r *Resources) InspectPods(ctx context.Context) error {
205205
}
206206
if updateMemberNeeded {
207207
// Save it
208-
if err := status.Members.UpdateMemberStatus(m, group); err != nil {
208+
if err := status.Members.Update(m, group); err != nil {
209209
return maskAny(err)
210210
}
211211
}

0 commit comments

Comments
 (0)