Skip to content
This repository has been archived by the owner on Mar 28, 2020. It is now read-only.

Commit

Permalink
Merge pull request #879 from hasbro17/haseeb/ClusterStatus-group-read…
Browse files Browse the repository at this point in the history
…y-unready-fields

spec/ClusterStatus: group ReadyMembers and UnreadyMembers together
  • Loading branch information
hasbro17 authored Mar 10, 2017
2 parents c15fa6a + 3e127e4 commit 6fb7593
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 10 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

- Backup creation time is added in backup status.
- Total size of backups time is added in backup service status.
- Cluster members that are ready and unready to serve requests are tracked via the ClusterStatus fields `ReadyMembers` and `UnreadyMembers`
- Cluster members that are ready and unready to serve requests are tracked via the ClusterStatus fields `Members.Ready` and `Members.Unready`

### Changed

Expand Down
4 changes: 2 additions & 2 deletions pkg/cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,8 +273,8 @@ func (c *Cluster) run(stopC <-chan struct{}) {
c.logger.Errorf("fail to poll pods: %v", err)
continue
}
c.status.ReadyMembers = k8sutil.GetPodNames(ready)
c.status.UnreadyMembers = k8sutil.GetPodNames(unready)
c.status.Members.Ready = k8sutil.GetPodNames(ready)
c.status.Members.Unready = k8sutil.GetPodNames(unready)

if err := c.updateTPRStatus(); err != nil {
c.logger.Warningf("failed to update TPR status: %v", err)
Expand Down
15 changes: 10 additions & 5 deletions pkg/spec/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -193,11 +193,8 @@ type ClusterStatus struct {

// Size is the current size of the cluster
Size int `json:"size"`
// ReadyMembers are the etcd members that are ready to serve requests
// The member names are the same as the etcd pod names
ReadyMembers []string `json:"readyMembers"`
// UnreadyPods are the etcd members not ready to serve requests
UnreadyMembers []string `json:"unreadyMembers"`
// Members are the etcd members in the cluster
Members MembersStatus `json:"members"`
// CurrentVersion is the current cluster version
CurrentVersion string `json:"currentVersion"`
// TargetVersion is the version the cluster upgrading to.
Expand All @@ -210,6 +207,14 @@ type ClusterStatus struct {
BackupServiceStatus *BackupServiceStatus `json:"backupServiceStatus,omitempty"`
}

type MembersStatus struct {
// Ready are the etcd members that are ready to serve requests
// The member names are the same as the etcd pod names
Ready []string `json:"ready,omitempty"`
// Unready are the etcd members not ready to serve requests
Unready []string `json:"unready,omitempty"`
}

func (cs ClusterStatus) Copy() ClusterStatus {
newCS := ClusterStatus{}
b, err := json.Marshal(cs)
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/cluster_status_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ func TestReadyMembersStatus(t *testing.T) {
logfWithTimestamp(t, "failed to get updated cluster object: %v", err)
return false, nil
}
if len(currEtcd.Status.ReadyMembers) != size {
logfWithTimestamp(t, "size of ready members want = %d, get = %d ReadyMembers(%v) UnreadyMembers(%v). Will retry checking ReadyMembers", size, len(currEtcd.Status.ReadyMembers), currEtcd.Status.ReadyMembers, currEtcd.Status.UnreadyMembers)
if len(currEtcd.Status.Members.Ready) != size {
logfWithTimestamp(t, "size of ready members want = %d, get = %d ReadyMembers(%v) UnreadyMembers(%v). Will retry checking ReadyMembers", size, len(currEtcd.Status.Members.Ready), currEtcd.Status.Members.Ready, currEtcd.Status.Members.Unready)
return false, nil
}
return true, nil
Expand Down

0 comments on commit 6fb7593

Please sign in to comment.