@@ -32,12 +32,12 @@ const (
3232 recentTerminationsKeepPeriod = time .Minute * 30
3333)
3434
35- type phaseMapFunc func (obj meta.Object , group api.ServerGroup , action api.Action , m * api.MemberStatus )
35+ type phaseMapFunc func (obj meta.Object , spec api. DeploymentSpec , group api.ServerGroup , action api.Action , m * api.MemberStatus )
3636type phaseMapTo map [api.MemberPhase ]phaseMapFunc
3737type phaseMap map [api.MemberPhase ]phaseMapTo
3838
3939type PhaseExecutor interface {
40- Execute (obj meta.Object , group api.ServerGroup , m * api.MemberStatus , action api.Action , to api.MemberPhase ) bool
40+ Execute (obj meta.Object , spec api. DeploymentSpec , group api.ServerGroup , m * api.MemberStatus , action api.Action , to api.MemberPhase ) bool
4141}
4242
4343func GetPhaseExecutor () PhaseExecutor {
@@ -46,22 +46,30 @@ func GetPhaseExecutor() PhaseExecutor {
4646
4747var phase = phaseMap {
4848 api .MemberPhaseNone : {
49- api .MemberPhasePending : func (obj meta.Object , group api.ServerGroup , action api.Action , m * api.MemberStatus ) {
49+ api .MemberPhasePending : func (obj meta.Object , spec api. DeploymentSpec , group api.ServerGroup , action api.Action , m * api.MemberStatus ) {
5050 // Change member RID
5151 m .RID = uuid .NewUUID ()
5252
5353 // Clean Pod details
5454 m .PodUID = ""
5555
56- m .ClusterID = obj .GetUID ()
56+ // Add ClusterID
57+ if m .ClusterID == "" {
58+ m .ClusterID = obj .GetUID ()
59+ }
60+
61+ if m .Architecture == nil {
62+ d := spec .Architecture .GetDefault ()
63+ m .Architecture = & d
64+ }
5765 },
5866 },
5967 api .MemberPhasePending : {
60- api .MemberPhaseCreated : func (obj meta.Object , group api.ServerGroup , action api.Action , m * api.MemberStatus ) {
68+ api .MemberPhaseCreated : func (obj meta.Object , spec api. DeploymentSpec , group api.ServerGroup , action api.Action , m * api.MemberStatus ) {
6169 // Clean conditions
6270 removeMemberConditionsMapFunc (m )
6371 },
64- api .MemberPhaseUpgrading : func (obj meta.Object , group api.ServerGroup , action api.Action , m * api.MemberStatus ) {
72+ api .MemberPhaseUpgrading : func (obj meta.Object , spec api. DeploymentSpec , group api.ServerGroup , action api.Action , m * api.MemberStatus ) {
6573 removeMemberConditionsMapFunc (m )
6674 },
6775 },
@@ -94,7 +102,7 @@ func removeMemberConditionsMapFunc(m *api.MemberStatus) {
94102 m .Upgrade = false
95103}
96104
97- func (p phaseMap ) empty (obj meta.Object , group api.ServerGroup , action api.Action , m * api.MemberStatus ) {
105+ func (p phaseMap ) empty (obj meta.Object , spec api. DeploymentSpec , group api.ServerGroup , action api.Action , m * api.MemberStatus ) {
98106
99107}
100108
@@ -108,7 +116,7 @@ func (p phaseMap) getFunc(from, to api.MemberPhase) phaseMapFunc {
108116 return p .empty
109117}
110118
111- func (p phaseMap ) Execute (obj meta.Object , group api.ServerGroup , m * api.MemberStatus , action api.Action , to api.MemberPhase ) bool {
119+ func (p phaseMap ) Execute (obj meta.Object , spec api. DeploymentSpec , group api.ServerGroup , m * api.MemberStatus , action api.Action , to api.MemberPhase ) bool {
112120 from := m .Phase
113121
114122 if from == to {
@@ -119,7 +127,7 @@ func (p phaseMap) Execute(obj meta.Object, group api.ServerGroup, m *api.MemberS
119127
120128 m .Phase = to
121129
122- f (obj , group , action , m )
130+ f (obj , spec , group , action , m )
123131
124132 return true
125133}
0 commit comments