1
1
/*
2
- Copyright 2022 The Multi-Cluster App Dispatcher Authors.
2
+ Copyright 2022, 2023 The Multi-Cluster App Dispatcher Authors.
3
3
4
4
Licensed under the Apache License, Version 2.0 (the "License");
5
5
you may not use this file except in compliance with the License.
@@ -135,6 +135,15 @@ func (fc *ForestController) Allocate(forestConsumer *ForestConsumer) *Allocation
135
135
for treeName , consumer := range consumers {
136
136
137
137
controller := fc .controllers [treeName ]
138
+ if controller == nil {
139
+ // skip, unknown tree
140
+ treeAllocResponse := NewAllocationResponse (consumerID )
141
+ var msg bytes.Buffer
142
+ fmt .Fprintf (& msg , "Failed to allocate consumer %s on unknown tree %s'" , consumerID , treeName )
143
+ treeAllocResponse .Append (false , msg .String (), nil )
144
+ allocResponse .Merge (treeAllocResponse )
145
+ continue
146
+ }
138
147
groupID := consumer .GetGroupID ()
139
148
allocRequested := consumer .GetRequest ()
140
149
if controller == nil || len (groupID ) == 0 || allocRequested .GetSize () != controller .GetQuotaSize () {
@@ -256,6 +265,10 @@ func (fc *ForestController) TryAllocate(forestConsumer *ForestConsumer) *Allocat
256
265
for treeName , consumer := range consumers {
257
266
var msg bytes.Buffer
258
267
controller := fc .controllers [treeName ]
268
+ if controller == nil {
269
+ // skip, unknown tree
270
+ continue
271
+ }
259
272
controller .treeSnapshot = NewTreeSnapshot (controller .tree , consumer )
260
273
// TODO: limit the number of potentially affected consumers by the allocation
261
274
if ! controller .treeSnapshot .Take (controller , controller .consumers ) {
@@ -280,6 +293,10 @@ func (fc *ForestController) UndoAllocate(forestConsumer *ForestConsumer) bool {
280
293
success := true
281
294
for treeName , consumer := range consumers {
282
295
controller := fc .controllers [treeName ]
296
+ if controller == nil {
297
+ // skip, unknown tree
298
+ continue
299
+ }
283
300
treeSuccess := controller .UndoAllocate (consumer )
284
301
success = success && treeSuccess
285
302
}
0 commit comments