11package caravela
22
33import (
4+ "context"
45"github.com/strabox/caravela-sim/simulation/metrics"
6+ "github.com/strabox/caravela-sim/util"
57"github.com/strabox/caravela/api/types"
68"github.com/strabox/caravela/configuration"
79)
@@ -25,65 +27,79 @@ func NewRemoteClientMock(nodeService NodeService, metricsCollector *metrics.Coll
2527// = CARAVELA's Remote Client Interface =
2628// ===============================================================================
2729
28- func (mock * RemoteClientMock ) CreateOffer (fromSupp * types.Node , toTrader * types.Node ,
30+ func (mock * RemoteClientMock ) CreateOffer (ctx context. Context , fromSupp * types.Node , toTrader * types.Node ,
2931offer * types.Offer ) error {
3032
3133node , nodeIndex := mock .nodeService .NodeByGUID (toTrader .GUID )
34+
35+ // Collect Metrics
3236mock .collector .APIRequestReceived (nodeIndex )
3337
34- node .CreateOffer (fromSupp , toTrader , offer )
38+ node .CreateOffer (ctx , fromSupp , toTrader , offer )
3539return nil
3640}
3741
38- func (mock * RemoteClientMock ) RefreshOffer (fromTrader , toSupp * types.Node , offer * types.Offer ) (bool , error ) {
42+ func (mock * RemoteClientMock ) RefreshOffer (ctx context. Context , fromTrader , toSupp * types.Node , offer * types.Offer ) (bool , error ) {
3943node , nodeIndex := mock .nodeService .NodeByIP (toSupp .IP )
44+
45+ // Collect Metrics
4046mock .collector .APIRequestReceived (nodeIndex )
4147
42- return node .RefreshOffer (fromTrader , offer ), nil
48+ return node .RefreshOffer (ctx , fromTrader , offer ), nil
4349}
4450
45- func (mock * RemoteClientMock ) RemoveOffer (fromSupp , toTrader * types.Node , offer * types.Offer ) error {
51+ func (mock * RemoteClientMock ) RemoveOffer (ctx context. Context , fromSupp , toTrader * types.Node , offer * types.Offer ) error {
4652node , nodeIndex := mock .nodeService .NodeByGUID (toTrader .GUID )
53+
54+ // Collect Metrics
4755mock .collector .APIRequestReceived (nodeIndex )
4856
49- node .RemoveOffer (fromSupp , toTrader , offer )
57+ node .RemoveOffer (ctx , fromSupp , toTrader , offer )
5058return nil
5159}
5260
53- func (mock * RemoteClientMock ) GetOffers (fromNode , toTrader * types.Node , relay bool ) ([]types.AvailableOffer , error ) {
61+ func (mock * RemoteClientMock ) GetOffers (ctx context. Context , fromNode , toTrader * types.Node , relay bool ) ([]types.AvailableOffer , error ) {
5462node , nodeIndex := mock .nodeService .NodeByGUID (toTrader .GUID )
55- mock .collector .IncrMessagesTradedRequest (1 )
63+
64+ // Collect Metrics
65+ mock .collector .IncrMessagesTradedRequest (ctx .Value (types .RequestCtxKey (util .SimRequestIDKey )).(string ), 1 )
5666mock .collector .APIRequestReceived (nodeIndex )
5767
58- offers := node .GetOffers (fromNode , toTrader , relay )
68+ offers := node .GetOffers (ctx , fromNode , toTrader , relay )
5969return offers , nil
6070}
6171
62- func (mock * RemoteClientMock ) AdvertiseOffersNeighbor (fromTrader , toNeighborTrader , traderOffering * types.Node ) error {
72+ func (mock * RemoteClientMock ) AdvertiseOffersNeighbor (ctx context. Context , fromTrader , toNeighborTrader , traderOffering * types.Node ) error {
6373node , nodeIndex := mock .nodeService .NodeByGUID (toNeighborTrader .GUID )
74+
75+ // Collect Metrics
6476mock .collector .APIRequestReceived (nodeIndex )
6577
66- node .AdvertiseOffersNeighbor (fromTrader , toNeighborTrader , traderOffering )
78+ node .AdvertiseOffersNeighbor (ctx , fromTrader , toNeighborTrader , traderOffering )
6779return nil
6880}
6981
70- func (mock * RemoteClientMock ) LaunchContainer (fromBuyer , toSupplier * types.Node , offer * types.Offer ,
71- containerConfig * types.ContainerConfig ) (* types.ContainerStatus , error ) {
82+ func (mock * RemoteClientMock ) LaunchContainer (ctx context. Context , fromBuyer , toSupplier * types.Node , offer * types.Offer ,
83+ containersConfigs [] types.ContainerConfig ) ([] types.ContainerStatus , error ) {
7284node , nodeIndex := mock .nodeService .NodeByIP (toSupplier .IP )
73- mock .collector .IncrMessagesTradedRequest (1 )
85+
86+ // Collect Metrics
87+ mock .collector .IncrMessagesTradedRequest (ctx .Value (types .RequestCtxKey (util .SimRequestIDKey )).(string ), 1 )
7488mock .collector .APIRequestReceived (nodeIndex )
7589
76- return node .LaunchContainers (fromBuyer , offer , containerConfig )
90+ return node .LaunchContainers (ctx , fromBuyer , offer , containersConfigs )
7791}
7892
79- func (mock * RemoteClientMock ) StopLocalContainer (toSupplier * types.Node , containerID string ) error {
93+ func (mock * RemoteClientMock ) StopLocalContainer (ctx context. Context , toSupplier * types.Node , containerID string ) error {
8094node , nodeIndex := mock .nodeService .NodeByIP (toSupplier .IP )
95+
96+ // Collect Metrics
8197mock .collector .APIRequestReceived (nodeIndex )
8298
83- return node .StopLocalContainer (containerID )
99+ return node .StopLocalContainer (ctx , containerID )
84100}
85101
86- func (mock * RemoteClientMock ) ObtainConfiguration (systemsNode * types.Node ) (* configuration.Configuration , error ) {
102+ func (mock * RemoteClientMock ) ObtainConfiguration (_ context. Context , _ * types.Node ) (* configuration.Configuration , error ) {
87103// Do Nothing (Not necessary for the simulation)
88104return nil , nil
89105}
0 commit comments