MCPcopy Create free account
hub / github.com/PostHog/duckgres / resolveWorkerAssignment

Function resolveWorkerAssignment

controlplane/worker_state.go:192–216  ·  view source on GitHub ↗
(current, proposed *WorkerAssignment)

Source from the content-addressed store, hash-verified

190}
191
192func resolveWorkerAssignment(current, proposed *WorkerAssignment) (*WorkerAssignment, error) {
193 if current != nil {
194 if err := validateWorkerAssignment(current); err != nil {
195 return nil, fmt.Errorf("current assignment: %w", err)
196 }
197 }
198 if proposed != nil {
199 if err := validateWorkerAssignment(proposed); err != nil {
200 return nil, fmt.Errorf("proposed assignment: %w", err)
201 }
202 }
203
204 switch {
205 case current == nil && proposed == nil:
206 return nil, fmt.Errorf("assignment is required")
207 case current == nil:
208 return cloneWorkerAssignment(proposed), nil
209 case proposed == nil:
210 return cloneWorkerAssignment(current), nil
211 case current.OrgID != proposed.OrgID:
212 return nil, fmt.Errorf("assignment org cannot change from %q to %q", current.OrgID, proposed.OrgID)
213 default:
214 return cloneWorkerAssignment(proposed), nil
215 }
216}
217
218func validateWorkerAssignment(assignment *WorkerAssignment) error {
219 if assignment == nil {

Callers 1

TransitionMethod · 0.85

Calls 2

validateWorkerAssignmentFunction · 0.85
cloneWorkerAssignmentFunction · 0.85

Tested by

no test coverage detected