Skip to content

Commit 1b5ab45

Browse files
committed
Update.
1 parent d22c323 commit 1b5ab45

File tree

6 files changed

+44
-50
lines changed

6 files changed

+44
-50
lines changed

node/discovery/backend/discovery.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ type Discovery interface {
4343

4444
// ========================== External/Remote Services (Only Simulation) =======================
4545
//
46-
AvailableResourcesSim() types.Resources
47-
//
48-
MaximumResourcesSim() types.Resources
46+
NodeInformationSim() (types.Resources, types.Resources, int)
4947
//
5048
RefreshOffersSim()
5149
//

node/discovery/offering/offering_discovery.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,16 @@ func (d *Discovery) AdvertiseNeighborOffers(fromTrader, toNeighborTrader, trader
121121
// ======================= External Services (Consumed during simulation ONLY) =========================
122122

123123
// Simulation
124-
func (d *Discovery) AvailableResourcesSim() types.Resources {
125-
return d.supplier.AvailableResources()
126-
}
127-
128-
// Simulation
129-
func (d *Discovery) MaximumResourcesSim() types.Resources {
130-
return d.supplier.MaximumResources()
124+
func (d *Discovery) NodeInformationSim() (types.Resources, types.Resources, int) {
125+
numActiveOffers := 0
126+
d.traders.Range(func(_, value interface{}) bool {
127+
currentTrader, ok := value.(*trader.Trader)
128+
if ok {
129+
numActiveOffers = currentTrader.NumActiveOffers()
130+
}
131+
return true
132+
})
133+
return d.supplier.AvailableResources(), d.supplier.MaximumResources(), numActiveOffers
131134
}
132135

133136
// Simulation

node/discovery/offering/trader/trader.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,13 @@ func (t *Trader) RefreshOffersSim() {
351351
}
352352
}
353353

354+
//Simulation
355+
func (t *Trader) NumActiveOffers() int {
356+
t.offersMutex.Lock()
357+
defer t.offersMutex.Unlock()
358+
return len(t.offers)
359+
}
360+
354361
//Simulation
355362
func (t *Trader) SpreadOffersSim() {
356363
// Advertise offers (if any) into the neighbors traders.

node/discovery/random/random_backend.go

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -168,22 +168,20 @@ func (d *Discovery) AdvertiseNeighborOffers(_, _, _ *types.Node) {
168168

169169
// ============== External/Remote Services (Only Simulation) ================
170170

171-
func (d *Discovery) AvailableResourcesSim() types.Resources {
171+
func (d *Discovery) NodeInformationSim() (types.Resources, types.Resources, int) {
172172
d.resourcesMutex.Lock()
173173
defer d.resourcesMutex.Unlock()
174174
return types.Resources{
175-
CPUClass: types.CPUClass(d.freeResources.CPUClass()),
176-
CPUs: d.freeResources.CPUs(),
177-
Memory: d.freeResources.Memory(),
178-
}
179-
}
180-
181-
func (d *Discovery) MaximumResourcesSim() types.Resources {
182-
return types.Resources{
183-
CPUClass: types.CPUClass(d.freeResources.CPUClass()),
184-
CPUs: d.maximumResources.CPUs(),
185-
Memory: d.maximumResources.Memory(),
186-
}
175+
CPUClass: types.CPUClass(d.freeResources.CPUClass()),
176+
CPUs: d.freeResources.CPUs(),
177+
Memory: d.freeResources.Memory(),
178+
},
179+
types.Resources{
180+
CPUClass: types.CPUClass(d.freeResources.CPUClass()),
181+
CPUs: d.maximumResources.CPUs(),
182+
Memory: d.maximumResources.Memory(),
183+
},
184+
0
187185
}
188186

189187
func (d *Discovery) RefreshOffersSim() {

node/discovery/swarm/swarm_discovery.go

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -296,24 +296,21 @@ func (d *Discovery) AdvertiseNeighborOffers(_, _, _ *types.Node) {
296296
// ======================= External Services (Consumed during simulation ONLY) =========================
297297

298298
// Simulation
299-
func (d *Discovery) AvailableResourcesSim() types.Resources {
299+
func (d *Discovery) NodeInformationSim() (types.Resources, types.Resources, int) {
300300
d.resourcesMutex.Lock()
301301
defer d.resourcesMutex.Unlock()
302302

303303
return types.Resources{
304-
CPUClass: types.CPUClass(d.availableResources.CPUClass()),
305-
CPUs: d.availableResources.CPUs(),
306-
Memory: d.availableResources.Memory(),
307-
}
308-
}
309-
310-
// Simulation
311-
func (d *Discovery) MaximumResourcesSim() types.Resources {
312-
return types.Resources{
313-
CPUClass: types.CPUClass(d.maximumResources.CPUClass()),
314-
CPUs: d.maximumResources.CPUs(),
315-
Memory: d.maximumResources.Memory(),
316-
}
304+
CPUClass: types.CPUClass(d.availableResources.CPUClass()),
305+
CPUs: d.availableResources.CPUs(),
306+
Memory: d.availableResources.Memory(),
307+
},
308+
types.Resources{
309+
CPUClass: types.CPUClass(d.maximumResources.CPUClass()),
310+
CPUs: d.maximumResources.CPUs(),
311+
Memory: d.maximumResources.Memory(),
312+
},
313+
0
317314
}
318315

319316
// Simulation

node/node.go

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -242,22 +242,13 @@ func (n *Node) StopLocalContainer(ctx context.Context, containerID string) error
242242

243243
// =========================== APIs exclusively used in Simulation ==============================
244244

245-
// AvailableResourcesSim returns the current available resources of the node.
245+
// NodeInformationSim returns the available resources, maximum available resources and number of offers in the node.
246246
// Note: Only available when the node is running in simulation mode.
247-
func (n *Node) AvailableResourcesSim() types.Resources {
247+
func (n *Node) NodeInformationSim() (types.Resources, types.Resources, int) {
248248
if !n.config.Simulation() {
249-
panic(errors.New("AvailableResourcesSim request can only be used in Simulation Mode"))
249+
panic(errors.New("NodeInformationSim request can only be used in Simulation Mode"))
250250
}
251-
return n.discoveryComp.AvailableResourcesSim()
252-
}
253-
254-
// MaximumResourcesSim returns the maximum available resources of the node.
255-
// Note: Only available when the node is running in simulation mode.
256-
func (n *Node) MaximumResourcesSim() types.Resources {
257-
if !n.config.Simulation() {
258-
panic(errors.New("MaximumResourcesSim request can only be used in Simulation Mode"))
259-
}
260-
return n.discoveryComp.MaximumResourcesSim()
251+
return n.discoveryComp.NodeInformationSim()
261252
}
262253

263254
// RefreshOffersSim triggers the inner actions to refresh all the offers that the node is handling.

0 commit comments

Comments
 (0)