@@ -2,6 +2,7 @@ package etcd
22
33import (
44 "fmt"
5+ "github.com/m3db/m3/src/cluster/kv"
56 "github.com/m3db/m3/src/cluster/placement"
67 "github.com/m3db/m3/src/cluster/services"
78 "github.com/m3db/m3/src/x/instrument"
@@ -77,6 +78,9 @@ func (p *placementMutator) GetCurrentPlacement(namespace string) (placement.Plac
7778 }
7879 plm , err := placementSvc .Placement ()
7980 if err != nil {
81+ if err == kv .ErrNotFound {
82+ return nil , common .ErrPlacementDoesNotExist
83+ }
8084 return nil , utils .StackError (err , common .ErrMsgFailedToGetCurrentPlacement )
8185 }
8286 return plm , nil
@@ -91,6 +95,9 @@ func (p *placementMutator) AddInstance(namespace string, instances []placement.I
9195 }
9296 plm , _ , err := placementSvc .AddInstances (instances )
9397 if err != nil {
98+ if err == kv .ErrNotFound {
99+ return nil , common .ErrPlacementDoesNotExist
100+ }
94101 return nil , utils .StackError (err , common .ErrMsgFailedToAddInstance )
95102 }
96103 return plm , nil
@@ -105,6 +112,9 @@ func (p *placementMutator) ReplaceInstance(namespace string, leavingInstances []
105112 }
106113 plm , _ , err := placementSvc .ReplaceInstances (leavingInstances , newInstances )
107114 if err != nil {
115+ if err == kv .ErrNotFound {
116+ return nil , common .ErrPlacementDoesNotExist
117+ }
108118 return nil , utils .StackError (err , common .ErrMsgFailedToReplaceInstance )
109119 }
110120 return plm , nil
@@ -119,6 +129,9 @@ func (p *placementMutator) RemoveInstance(namespace string, leavingInstances []s
119129 }
120130 plm , err := placementSvc .RemoveInstances (leavingInstances )
121131 if err != nil {
132+ if err == kv .ErrNotFound {
133+ return nil , common .ErrPlacementDoesNotExist
134+ }
122135 return nil , utils .StackError (err , common .ErrMsgFailedToRemoveInstance )
123136 }
124137 return plm , nil
@@ -132,6 +145,9 @@ func (p *placementMutator) MarkNamespaceAvailable(namespace string) (placement.P
132145 }
133146 plm , err := placementSvc .MarkAllShardsAvailable ()
134147 if err != nil {
148+ if err == kv .ErrNotFound {
149+ return nil , common .ErrPlacementDoesNotExist
150+ }
135151 return nil , utils .StackError (err , common .ErrMsgFailedToMarkAvailable )
136152 }
137153 return plm , nil
@@ -145,6 +161,9 @@ func (p *placementMutator) MarkInstanceAvailable(namespace string, instance stri
145161 }
146162 plm , err := placementSvc .MarkInstanceAvailable (instance )
147163 if err != nil {
164+ if err == kv .ErrNotFound {
165+ return nil , common .ErrPlacementDoesNotExist
166+ }
148167 return nil , utils .StackError (err , common .ErrMsgFailedToMarkAvailable )
149168 }
150169 return plm , nil
@@ -158,6 +177,9 @@ func (p *placementMutator) MarkShardsAvailable(namespace string, instance string
158177 }
159178 plm , err := placementSvc .MarkShardsAvailable (instance , shards ... )
160179 if err != nil {
180+ if err == kv .ErrNotFound {
181+ return nil , common .ErrPlacementDoesNotExist
182+ }
161183 return nil , utils .StackError (err , common .ErrMsgFailedToMarkAvailable )
162184 }
163185 return plm , nil
0 commit comments