From 1ea475139535eaaf1d12e66db2506ae5cd366f69 Mon Sep 17 00:00:00 2001 From: Dmitry Shihovtsev Date: Tue, 18 Sep 2018 17:43:52 +0600 Subject: [PATCH] Context spreading reduced --- core/connection/interface.go | 4 +-- core/connection/manager.go | 6 ++--- core/connection/manager_test.go | 35 +++++++++++++------------- discovery/discovery.go | 33 +++++++++++++----------- identity/selector/handler.go | 3 +-- requests/request.go | 17 ++++++------- requests/request_test.go | 7 +++--- server/interface.go | 12 ++++----- server/mysterium_api.go | 23 ++++++++--------- server/mysterium_api_fake.go | 12 ++++----- server/response_test.go | 5 ++-- tequilapi/endpoints/connection.go | 2 +- tequilapi/endpoints/connection_test.go | 3 +-- tequilapi/endpoints/identities.go | 2 +- tequilapi/endpoints/location_test.go | 3 +-- tequilapi/endpoints/proposals.go | 2 +- tequilapi/endpoints/proposals_test.go | 5 ++-- 17 files changed, 81 insertions(+), 93 deletions(-) diff --git a/core/connection/interface.go b/core/connection/interface.go index 74830ee460..b456d8ec58 100644 --- a/core/connection/interface.go +++ b/core/connection/interface.go @@ -18,8 +18,6 @@ package connection import ( - "context" - "github.com/mysteriumnetwork/go-openvpn/openvpn" "github.com/mysteriumnetwork/go-openvpn/openvpn/middlewares/state" @@ -39,7 +37,7 @@ type VpnClientCreator func(session.SessionDto, identity.Identity, identity.Ident // Manager interface provides methods to manage connection type Manager interface { // Connect creates new connection from given consumer to provider, reports error if connection already exists - Connect(ctx context.Context, consumerID identity.Identity, providerID identity.Identity, options ConnectOptions) error + Connect(consumerID identity.Identity, providerID identity.Identity, options ConnectOptions) error // Status queries current status of connection Status() ConnectionStatus // Disconnect closes established connection, reports error if no connection diff --git a/core/connection/manager.go b/core/connection/manager.go index dcc0c36d30..b9a91a3403 100644 --- a/core/connection/manager.go +++ b/core/connection/manager.go @@ -72,13 +72,13 @@ func NewManager(mysteriumClient server.Client, dialogCreator DialogCreator, } } -func (manager *connectionManager) Connect(ctx context.Context, consumerID, providerID identity.Identity, options ConnectOptions) (err error) { +func (manager *connectionManager) Connect(consumerID, providerID identity.Identity, options ConnectOptions) (err error) { if manager.status.State != NotConnected { return ErrAlreadyExists } manager.mutex.Lock() - manager.ctx, manager.cleanConnection = context.WithCancel(ctx) + manager.ctx, manager.cleanConnection = context.WithCancel(context.Background()) manager.status = statusConnecting() manager.mutex.Unlock() defer func() { @@ -179,7 +179,7 @@ func warnOnClean() { // TODO this can be extracted as dependency later when node selection criteria will be clear func (manager *connectionManager) findProposalByProviderID(providerID identity.Identity) (*dto.ServiceProposal, error) { - proposals, err := manager.mysteriumClient.FindProposals(manager.ctx, providerID.Address) + proposals, err := manager.mysteriumClient.FindProposals(providerID.Address) if err != nil { return nil, err } diff --git a/core/connection/manager_test.go b/core/connection/manager_test.go index 36f7067ca3..e36b9774a3 100644 --- a/core/connection/manager_test.go +++ b/core/connection/manager_test.go @@ -18,7 +18,6 @@ package connection import ( - "context" "errors" "sync" "testing" @@ -63,7 +62,7 @@ func (tc *testContext) SetupTest() { defer tc.Unlock() tc.fakeDiscoveryClient = server.NewClientFake() - tc.fakeDiscoveryClient.RegisterProposal(context.Background(), activeProposal, nil) + tc.fakeDiscoveryClient.RegisterProposal(activeProposal, nil) tc.fakeDialog = &fakeDialog{} dialogCreator := func(consumer, provider identity.Identity, contact dto.Contact) (communication.Dialog, error) { @@ -116,7 +115,7 @@ func (tc *testContext) TestWhenNoConnectionIsMadeStatusIsNotConnected() { func (tc *testContext) TestWithUnknownProviderConnectionIsNotMade() { noProposalsError := errors.New("provider has no service proposals") - assert.Equal(tc.T(), noProposalsError, tc.connManager.Connect(context.Background(), myID, identity.FromAddress("unknown-node"), ConnectOptions{})) + assert.Equal(tc.T(), noProposalsError, tc.connManager.Connect(myID, identity.FromAddress("unknown-node"), ConnectOptions{})) assert.Equal(tc.T(), statusNotConnected(), tc.connManager.Status()) assert.False(tc.T(), tc.fakeStatsKeeper.sessionStartMarked) @@ -126,20 +125,20 @@ func (tc *testContext) TestOnConnectErrorStatusIsNotConnectedAndSessionStartIsNo fatalVpnError := errors.New("fatal connection error") tc.fakeOpenVpn.onStartReturnError = fatalVpnError - assert.Error(tc.T(), tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{})) + assert.Error(tc.T(), tc.connManager.Connect(myID, activeProviderID, ConnectOptions{})) assert.Equal(tc.T(), statusNotConnected(), tc.connManager.Status()) assert.True(tc.T(), tc.fakeDialog.closed) assert.False(tc.T(), tc.fakeStatsKeeper.sessionStartMarked) } func (tc *testContext) TestWhenManagerMadeConnectionStatusReturnsConnectedStateAndSessionId() { - err := tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{}) + err := tc.connManager.Connect(myID, activeProviderID, ConnectOptions{}) assert.NoError(tc.T(), err) assert.Equal(tc.T(), statusConnected("vpn-connection-id"), tc.connManager.Status()) } func (tc *testContext) TestWhenManagerMadeConnectionSessionStartIsMarked() { - err := tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{}) + err := tc.connManager.Connect(myID, activeProviderID, ConnectOptions{}) assert.NoError(tc.T(), err) assert.True(tc.T(), tc.fakeStatsKeeper.sessionStartMarked) @@ -149,7 +148,7 @@ func (tc *testContext) TestStatusReportsConnectingWhenConnectionIsInProgress() { tc.fakeOpenVpn.onStartReportStates = []openvpn.State{} go func() { - tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{}) + tc.connManager.Connect(myID, activeProviderID, ConnectOptions{}) assert.Fail(tc.T(), "This should never return") }() @@ -160,7 +159,7 @@ func (tc *testContext) TestStatusReportsConnectingWhenConnectionIsInProgress() { func (tc *testContext) TestStatusReportsDisconnectingThenNotConnected() { tc.fakeOpenVpn.onStopReportStates = []openvpn.State{} - err := tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{}) + err := tc.connManager.Connect(myID, activeProviderID, ConnectOptions{}) assert.NoError(tc.T(), err) assert.Equal(tc.T(), statusConnected("vpn-connection-id"), tc.connManager.Status()) @@ -175,8 +174,8 @@ func (tc *testContext) TestStatusReportsDisconnectingThenNotConnected() { } func (tc *testContext) TestConnectResultsInAlreadyConnectedErrorWhenConnectionExists() { - assert.NoError(tc.T(), tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{})) - assert.Equal(tc.T(), ErrAlreadyExists, tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{})) + assert.NoError(tc.T(), tc.connManager.Connect(myID, activeProviderID, ConnectOptions{})) + assert.Equal(tc.T(), ErrAlreadyExists, tc.connManager.Connect(myID, activeProviderID, ConnectOptions{})) } func (tc *testContext) TestDisconnectReturnsErrorWhenNoConnectionExists() { @@ -184,14 +183,14 @@ func (tc *testContext) TestDisconnectReturnsErrorWhenNoConnectionExists() { } func (tc *testContext) TestReconnectingStatusIsReportedWhenOpenVpnGoesIntoReconnectingState() { - assert.NoError(tc.T(), tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{})) + assert.NoError(tc.T(), tc.connManager.Connect(myID, activeProviderID, ConnectOptions{})) tc.fakeOpenVpn.reportState(openvpn.ReconnectingState) waitABit() assert.Equal(tc.T(), statusReconnecting(), tc.connManager.Status()) } func (tc *testContext) TestDoubleDisconnectResultsInError() { - assert.NoError(tc.T(), tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{})) + assert.NoError(tc.T(), tc.connManager.Connect(myID, activeProviderID, ConnectOptions{})) assert.Equal(tc.T(), statusConnected("vpn-connection-id"), tc.connManager.Status()) assert.NoError(tc.T(), tc.connManager.Disconnect()) waitABit() @@ -200,13 +199,13 @@ func (tc *testContext) TestDoubleDisconnectResultsInError() { } func (tc *testContext) TestTwoConnectDisconnectCyclesReturnNoError() { - assert.NoError(tc.T(), tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{})) + assert.NoError(tc.T(), tc.connManager.Connect(myID, activeProviderID, ConnectOptions{})) assert.Equal(tc.T(), statusConnected("vpn-connection-id"), tc.connManager.Status()) assert.NoError(tc.T(), tc.connManager.Disconnect()) waitABit() assert.Equal(tc.T(), statusNotConnected(), tc.connManager.Status()) - assert.NoError(tc.T(), tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{})) + assert.NoError(tc.T(), tc.connManager.Connect(myID, activeProviderID, ConnectOptions{})) assert.Equal(tc.T(), statusConnected("vpn-connection-id"), tc.connManager.Status()) assert.NoError(tc.T(), tc.connManager.Disconnect()) waitABit() @@ -216,11 +215,11 @@ func (tc *testContext) TestTwoConnectDisconnectCyclesReturnNoError() { func (tc *testContext) TestConnectFailsIfOpenvpnFactoryReturnsError() { tc.openvpnCreationError = errors.New("failed to create vpn instance") - assert.Error(tc.T(), tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{})) + assert.Error(tc.T(), tc.connManager.Connect(myID, activeProviderID, ConnectOptions{})) } func (tc *testContext) TestStatusIsConnectedWhenConnectCommandReturnsWithoutError() { - tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{}) + tc.connManager.Connect(myID, activeProviderID, ConnectOptions{}) assert.Equal(tc.T(), statusConnected("vpn-connection-id"), tc.connManager.Status()) } @@ -231,7 +230,7 @@ func (tc *testContext) TestConnectingInProgressCanBeCanceled() { var err error go func() { defer connectWaiter.Done() - err = tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{}) + err = tc.connManager.Connect(myID, activeProviderID, ConnectOptions{}) }() waitABit() @@ -252,7 +251,7 @@ func (tc *testContext) TestConnectMethodReturnsErrorIfOpenvpnClientExitsDuringCo var err error go func() { defer connectWaiter.Done() - err = tc.connManager.Connect(context.Background(), myID, activeProviderID, ConnectOptions{}) + err = tc.connManager.Connect(myID, activeProviderID, ConnectOptions{}) }() waitABit() tc.fakeOpenVpn.reportState(openvpn.ProcessExited) diff --git a/discovery/discovery.go b/discovery/discovery.go index bb62a0c4dc..b080b101f5 100644 --- a/discovery/discovery.go +++ b/discovery/discovery.go @@ -18,7 +18,6 @@ package discovery import ( - "context" "time" log "github.com/cihub/seelog" @@ -54,14 +53,17 @@ func (d *Discovery) Start(ownIdentity identity.Identity, proposal dto_discovery. d.signer = d.signerCreate(ownIdentity) d.proposal = proposal - ctx, cancel := context.WithCancel(context.Background()) - d.stop = cancel + stopLoop := make(chan bool) + d.stop = func() { + // cancel (stop) discovery loop + stopLoop <- true + } d.proposalAnnouncementStopped.Add(1) go d.checkRegistration() - go d.mainDiscoveryLoop(ctx) + go d.mainDiscoveryLoop(stopLoop) } // Wait wait for proposal announcements to stop / unregister @@ -74,21 +76,22 @@ func (d *Discovery) Stop() { d.stop() } -func (d *Discovery) mainDiscoveryLoop(ctx context.Context) { +func (d *Discovery) mainDiscoveryLoop(stopLoop chan bool) { + for { select { - case <-ctx.Done(): + case <-stopLoop: d.stopLoop() case event := <-d.statusChan: switch event { case IdentityUnregistered: d.registerIdentity() case RegisterProposal: - go d.registerProposal(ctx) + go d.registerProposal() case PingProposal: - go d.pingProposal(ctx) + go d.pingProposal() case UnregisterProposal: - go d.unregisterProposal(ctx) + go d.unregisterProposal() case IdentityRegisterFailed, ProposalUnregistered, UnregisterProposalFailed: d.proposalAnnouncementStopped.Done() return @@ -131,8 +134,8 @@ func (d *Discovery) registerIdentity() { }() } -func (d *Discovery) registerProposal(ctx context.Context) { - err := d.mysteriumClient.RegisterProposal(ctx, d.proposal, d.signer) +func (d *Discovery) registerProposal() { + err := d.mysteriumClient.RegisterProposal(d.proposal, d.signer) if err != nil { log.Errorf("%s Failed to register proposal, retrying after 1 min. %s", logPrefix, err.Error()) time.Sleep(1 * time.Minute) @@ -142,17 +145,17 @@ func (d *Discovery) registerProposal(ctx context.Context) { d.changeStatus(PingProposal) } -func (d *Discovery) pingProposal(ctx context.Context) { +func (d *Discovery) pingProposal() { time.Sleep(1 * time.Minute) - err := d.mysteriumClient.PingProposal(ctx, d.proposal, d.signer) + err := d.mysteriumClient.PingProposal(d.proposal, d.signer) if err != nil { log.Error(logPrefix, "Failed to ping proposal: ", err) } d.changeStatus(PingProposal) } -func (d *Discovery) unregisterProposal(ctx context.Context) { - err := d.mysteriumClient.UnregisterProposal(ctx, d.proposal, d.signer) +func (d *Discovery) unregisterProposal() { + err := d.mysteriumClient.UnregisterProposal(d.proposal, d.signer) if err != nil { log.Error(logPrefix, "Failed to unregister proposal: ", err) d.changeStatus(UnregisterProposalFailed) diff --git a/identity/selector/handler.go b/identity/selector/handler.go index 16f7ffa219..41cff70e41 100644 --- a/identity/selector/handler.go +++ b/identity/selector/handler.go @@ -18,7 +18,6 @@ package selector import ( - "context" "errors" "github.com/mysteriumnetwork/node/identity" @@ -85,7 +84,7 @@ func (h *handler) UseNew(passphrase string) (id identity.Identity, err error) { return } - if err = h.identityAPI.RegisterIdentity(context.Background(), id, h.signerFactory(id)); err != nil { + if err = h.identityAPI.RegisterIdentity(id, h.signerFactory(id)); err != nil { return } diff --git a/requests/request.go b/requests/request.go index e5ba7c266b..9eb616bc55 100644 --- a/requests/request.go +++ b/requests/request.go @@ -19,7 +19,6 @@ package requests import ( "bytes" - "context" "encoding/json" "fmt" "net/http" @@ -35,22 +34,22 @@ const ( ) // NewGetRequest generates http Get request -func NewGetRequest(ctx context.Context, apiURI, path string, params url.Values) (*http.Request, error) { +func NewGetRequest(apiURI, path string, params url.Values) (*http.Request, error) { pathWithQuery := fmt.Sprintf("%v?%v", path, params.Encode()) - return newRequest(ctx, http.MethodGet, apiURI, pathWithQuery, nil) + return newRequest(http.MethodGet, apiURI, pathWithQuery, nil) } // NewPostRequest generates http Post request -func NewPostRequest(ctx context.Context, apiURI, path string, requestBody interface{}) (*http.Request, error) { +func NewPostRequest(apiURI, path string, requestBody interface{}) (*http.Request, error) { bodyBytes, err := encodeToJSON(requestBody) if err != nil { return nil, err } - return newRequest(ctx, http.MethodPost, apiURI, path, bodyBytes) + return newRequest(http.MethodPost, apiURI, path, bodyBytes) } // NewSignedPostRequest signs payload and generates http Post request -func NewSignedPostRequest(ctx context.Context, apiURI, path string, requestBody interface{}, signer identity.Signer) (*http.Request, error) { +func NewSignedPostRequest(apiURI, path string, requestBody interface{}, signer identity.Signer) (*http.Request, error) { bodyBytes, err := encodeToJSON(requestBody) if err != nil { return nil, err @@ -61,7 +60,7 @@ func NewSignedPostRequest(ctx context.Context, apiURI, path string, requestBody return nil, err } - req, err := newRequest(ctx, http.MethodPost, apiURI, path, bodyBytes) + req, err := newRequest(http.MethodPost, apiURI, path, bodyBytes) if err != nil { return nil, err } @@ -75,7 +74,7 @@ func encodeToJSON(value interface{}) ([]byte, error) { return json.Marshal(value) } -func newRequest(ctx context.Context, method, apiURI, path string, body []byte) (*http.Request, error) { +func newRequest(method, apiURI, path string, body []byte) (*http.Request, error) { fullUrl := fmt.Sprintf("%v/%v", apiURI, path) req, err := http.NewRequest(method, fullUrl, bytes.NewBuffer(body)) if err != nil { @@ -85,5 +84,5 @@ func newRequest(ctx context.Context, method, apiURI, path string, body []byte) ( req.Header.Set("Content-Type", "application/json") req.Header.Set("Accept", "application/json") - return req.WithContext(ctx), nil + return req, nil } diff --git a/requests/request_test.go b/requests/request_test.go index 4b2e2e05d6..bdb0f2e712 100644 --- a/requests/request_test.go +++ b/requests/request_test.go @@ -19,7 +19,6 @@ package requests import ( "bytes" - "context" "io" "net/url" "testing" @@ -46,7 +45,7 @@ func TestSignatureIsInsertedForSignedPost(t *testing.T) { signer := mockedSigner{identity.SignatureBase64("deadbeef")} - req, err := NewSignedPostRequest(context.Background(), testRequestApiUrl, "/post-path", testPayload{"abc"}, &signer) + req, err := NewSignedPostRequest(testRequestApiUrl, "/post-path", testPayload{"abc"}, &signer) assert.NoError(t, err) assert.Equal(t, req.Header.Get("Authorization"), "Signature deadbeef") } @@ -57,7 +56,7 @@ func TestDoGetContactsPassedValuesForUrl(t *testing.T) { params["param1"] = []string{"value1"} params["param2"] = []string{"value2"} - req, err := NewGetRequest(context.Background(), testRequestApiUrl, "get-path", params) + req, err := NewGetRequest(testRequestApiUrl, "get-path", params) assert.NoError(t, err) assert.Equal(t, "http://testUrl/get-path?param1=value1¶m2=value2", req.URL.String()) @@ -66,7 +65,7 @@ func TestDoGetContactsPassedValuesForUrl(t *testing.T) { func TestPayloadIsSerializedSuccessfullyForPostMethod(t *testing.T) { - req, err := NewPostRequest(context.Background(), testRequestApiUrl, "post-path", testPayload{"abc"}) + req, err := NewPostRequest(testRequestApiUrl, "post-path", testPayload{"abc"}) assert.NoError(t, err) diff --git a/server/interface.go b/server/interface.go index 40d5a415be..66db857091 100644 --- a/server/interface.go +++ b/server/interface.go @@ -18,8 +18,6 @@ package server import ( - "context" - "github.com/mysteriumnetwork/node/identity" "github.com/mysteriumnetwork/node/server/dto" dto_discovery "github.com/mysteriumnetwork/node/service_discovery/dto" @@ -28,12 +26,12 @@ import ( // Client is interface how to access Mysterium API type Client interface { - RegisterIdentity(ctx context.Context, id identity.Identity, signer identity.Signer) (err error) + RegisterIdentity(id identity.Identity, signer identity.Signer) (err error) - FindProposals(ctx context.Context, providerID string) (proposals []dto_discovery.ServiceProposal, err error) - RegisterProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) - UnregisterProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) - PingProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) + FindProposals(providerID string) (proposals []dto_discovery.ServiceProposal, err error) + RegisterProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) + UnregisterProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) + PingProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) SendSessionStats(sessionId session.SessionID, sessionStats dto.SessionStats, signer identity.Signer) (err error) } diff --git a/server/mysterium_api.go b/server/mysterium_api.go index ee01141087..3d9c507acb 100644 --- a/server/mysterium_api.go +++ b/server/mysterium_api.go @@ -18,7 +18,6 @@ package server import ( - "context" "fmt" "net/http" "net/url" @@ -65,8 +64,8 @@ func NewClient(discoveryAPIAddress string) Client { } // RegisterIdentity registers given identity to discovery service -func (mApi *mysteriumAPI) RegisterIdentity(ctx context.Context, id identity.Identity, signer identity.Signer) error { - req, err := requests.NewSignedPostRequest(ctx, mApi.discoveryAPIAddress, "identities", dto.CreateIdentityRequest{ +func (mApi *mysteriumAPI) RegisterIdentity(id identity.Identity, signer identity.Signer) error { + req, err := requests.NewSignedPostRequest(mApi.discoveryAPIAddress, "identities", dto.CreateIdentityRequest{ Identity: id.Address, }, signer) if err != nil { @@ -81,8 +80,8 @@ func (mApi *mysteriumAPI) RegisterIdentity(ctx context.Context, id identity.Iden } // RegisterProposal registers service proposal to discovery service -func (mApi *mysteriumAPI) RegisterProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) error { - req, err := requests.NewSignedPostRequest(ctx, mApi.discoveryAPIAddress, "register_proposal", dto.NodeRegisterRequest{ +func (mApi *mysteriumAPI) RegisterProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) error { + req, err := requests.NewSignedPostRequest(mApi.discoveryAPIAddress, "register_proposal", dto.NodeRegisterRequest{ ServiceProposal: proposal, }, signer) if err != nil { @@ -98,8 +97,8 @@ func (mApi *mysteriumAPI) RegisterProposal(ctx context.Context, proposal dto_dis } // UnregisterProposal unregisters a service proposal when client disconnects -func (mApi *mysteriumAPI) UnregisterProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) error { - req, err := requests.NewSignedPostRequest(ctx, mApi.discoveryAPIAddress, "unregister_proposal", dto.ProposalUnregisterRequest{ +func (mApi *mysteriumAPI) UnregisterProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) error { + req, err := requests.NewSignedPostRequest(mApi.discoveryAPIAddress, "unregister_proposal", dto.ProposalUnregisterRequest{ ProviderID: proposal.ProviderID, }, signer) if err != nil { @@ -116,8 +115,8 @@ func (mApi *mysteriumAPI) UnregisterProposal(ctx context.Context, proposal dto_d } // PingProposal pings service proposal as being alive -func (mApi *mysteriumAPI) PingProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) error { - req, err := requests.NewSignedPostRequest(ctx, mApi.discoveryAPIAddress, "ping_proposal", dto.NodeStatsRequest{ +func (mApi *mysteriumAPI) PingProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) error { + req, err := requests.NewSignedPostRequest(mApi.discoveryAPIAddress, "ping_proposal", dto.NodeStatsRequest{ NodeKey: proposal.ProviderID, }, signer) if err != nil { @@ -132,13 +131,13 @@ func (mApi *mysteriumAPI) PingProposal(ctx context.Context, proposal dto_discove } // FindProposals fetches currently active service proposals from discovery -func (mApi *mysteriumAPI) FindProposals(ctx context.Context, providerID string) ([]dto_discovery.ServiceProposal, error) { +func (mApi *mysteriumAPI) FindProposals(providerID string) ([]dto_discovery.ServiceProposal, error) { values := url.Values{} if providerID != "" { values.Set("node_key", providerID) } - req, err := requests.NewGetRequest(ctx, mApi.discoveryAPIAddress, "proposals", values) + req, err := requests.NewGetRequest(mApi.discoveryAPIAddress, "proposals", values) if err != nil { return nil, err } @@ -157,7 +156,7 @@ func (mApi *mysteriumAPI) FindProposals(ctx context.Context, providerID string) // SendSessionStats sends session statistics func (mApi *mysteriumAPI) SendSessionStats(sessionID session.SessionID, sessionStats dto.SessionStats, signer identity.Signer) error { path := fmt.Sprintf("sessions/%s/stats", sessionID) - req, err := requests.NewSignedPostRequest(context.Background(), mApi.discoveryAPIAddress, path, sessionStats, signer) + req, err := requests.NewSignedPostRequest(mApi.discoveryAPIAddress, path, sessionStats, signer) if err != nil { return err } diff --git a/server/mysterium_api_fake.go b/server/mysterium_api_fake.go index a1b9d8abde..41fada6bf9 100644 --- a/server/mysterium_api_fake.go +++ b/server/mysterium_api_fake.go @@ -18,8 +18,6 @@ package server import ( - "context" - log "github.com/cihub/seelog" "github.com/mysteriumnetwork/node/identity" @@ -42,7 +40,7 @@ type ClientFake struct { } // RegisterProposal announces service proposal -func (client *ClientFake) RegisterProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) { +func (client *ClientFake) RegisterProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) { client.proposalsMock = append(client.proposalsMock, proposal) log.Info(mysteriumAPILogPrefix, "Fake proposal registered: ", proposal) @@ -50,7 +48,7 @@ func (client *ClientFake) RegisterProposal(ctx context.Context, proposal dto_dis } // UnregisterProposal unregisters a service proposal when client disconnects -func (client *ClientFake) UnregisterProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) error { +func (client *ClientFake) UnregisterProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) error { remainingProposals := make([]dto_discovery.ServiceProposal, 0) for _, pr := range client.proposalsMock { @@ -66,7 +64,7 @@ func (client *ClientFake) UnregisterProposal(ctx context.Context, proposal dto_d } // RegisterIdentity announces that new identity was created -func (client *ClientFake) RegisterIdentity(ctx context.Context, id identity.Identity, signer identity.Signer) (err error) { +func (client *ClientFake) RegisterIdentity(id identity.Identity, signer identity.Signer) (err error) { client.RegisteredIdentity = id log.Info(mysteriumAPILogPrefix, "Fake newIdentity registered: ", id.Address) @@ -74,14 +72,14 @@ func (client *ClientFake) RegisterIdentity(ctx context.Context, id identity.Iden } // PingProposal heartbeats that service proposal is still active -func (client *ClientFake) PingProposal(ctx context.Context, proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) { +func (client *ClientFake) PingProposal(proposal dto_discovery.ServiceProposal, signer identity.Signer) (err error) { log.Info(mysteriumAPILogPrefix, "Proposal stats sent: ", proposal.ProviderID) return nil } // FindProposals fetches announced proposals by given filters -func (client *ClientFake) FindProposals(ctx context.Context, providerID string) (proposals []dto_discovery.ServiceProposal, err error) { +func (client *ClientFake) FindProposals(providerID string) (proposals []dto_discovery.ServiceProposal, err error) { log.Info(mysteriumAPILogPrefix, "Fake proposals requested for provider: ", providerID) for _, proposal := range client.proposalsMock { diff --git a/server/response_test.go b/server/response_test.go index eb9c4c57cd..c97e1a6246 100644 --- a/server/response_test.go +++ b/server/response_test.go @@ -19,7 +19,6 @@ package server import ( "bytes" - "context" "io/ioutil" "net/http" "testing" @@ -31,7 +30,7 @@ import ( var testRequestAPIURL = "http://testUrl" func TestHttpErrorIsReportedAsErrorReturnValue(t *testing.T) { - req, err := requests.NewGetRequest(context.Background(), testRequestAPIURL, "path", nil) + req, err := requests.NewGetRequest(testRequestAPIURL, "path", nil) assert.NoError(t, err) response := &http.Response{ @@ -48,7 +47,7 @@ type testResponse struct { func TestHttpResponseBodyIsParsedCorrectly(t *testing.T) { - req, err := requests.NewGetRequest(context.Background(), testRequestAPIURL, "path", nil) + req, err := requests.NewGetRequest(testRequestAPIURL, "path", nil) assert.NoError(t, err) response := &http.Response{ diff --git a/tequilapi/endpoints/connection.go b/tequilapi/endpoints/connection.go index d1040a28a8..7c9d8a6178 100644 --- a/tequilapi/endpoints/connection.go +++ b/tequilapi/endpoints/connection.go @@ -177,7 +177,7 @@ func (ce *ConnectionEndpoint) Create(resp http.ResponseWriter, req *http.Request } connectOptions := getConnectOptions(cr) - err = ce.manager.Connect(req.Context(), identity.FromAddress(cr.ConsumerID), identity.FromAddress(cr.ProviderID), connectOptions) + err = ce.manager.Connect(identity.FromAddress(cr.ConsumerID), identity.FromAddress(cr.ProviderID), connectOptions) if err != nil { switch err { diff --git a/tequilapi/endpoints/connection_test.go b/tequilapi/endpoints/connection_test.go index 685632b587..93207df4c6 100644 --- a/tequilapi/endpoints/connection_test.go +++ b/tequilapi/endpoints/connection_test.go @@ -18,7 +18,6 @@ package endpoints import ( - "context" "errors" "net/http" "net/http/httptest" @@ -44,7 +43,7 @@ type fakeManager struct { requestedProvider identity.Identity } -func (fm *fakeManager) Connect(ctx context.Context, consumerID identity.Identity, providerID identity.Identity, options connection.ConnectOptions) error { +func (fm *fakeManager) Connect(consumerID identity.Identity, providerID identity.Identity, options connection.ConnectOptions) error { fm.requestedConsumer = consumerID fm.requestedProvider = providerID return fm.onConnectReturn diff --git a/tequilapi/endpoints/identities.go b/tequilapi/endpoints/identities.go index 80076a5144..c9fe8ea8fa 100644 --- a/tequilapi/endpoints/identities.go +++ b/tequilapi/endpoints/identities.go @@ -197,7 +197,7 @@ func (endpoint *identitiesAPI) Register(resp http.ResponseWriter, request *http. return } - err = endpoint.mysteriumClient.RegisterIdentity(request.Context(), id, endpoint.signerFactory(id)) + err = endpoint.mysteriumClient.RegisterIdentity(id, endpoint.signerFactory(id)) if err != nil { utils.SendError(resp, err, http.StatusInternalServerError) return diff --git a/tequilapi/endpoints/location_test.go b/tequilapi/endpoints/location_test.go index a5b5a6d7af..46982b015a 100644 --- a/tequilapi/endpoints/location_test.go +++ b/tequilapi/endpoints/location_test.go @@ -18,7 +18,6 @@ package endpoints import ( - "context" "net/http" "net/http/httptest" "strings" @@ -35,7 +34,7 @@ type fakeManagerForLocation struct { onStatusReturn connection.ConnectionStatus } -func (fm *fakeManagerForLocation) Connect(ctx context.Context, consumerID identity.Identity, providerID identity.Identity, options connection.ConnectOptions) error { +func (fm *fakeManagerForLocation) Connect(consumerID identity.Identity, providerID identity.Identity, options connection.ConnectOptions) error { return nil } diff --git a/tequilapi/endpoints/proposals.go b/tequilapi/endpoints/proposals.go index 399c4815c0..9b3da88186 100644 --- a/tequilapi/endpoints/proposals.go +++ b/tequilapi/endpoints/proposals.go @@ -123,7 +123,7 @@ func NewProposalsEndpoint(mc server.Client) *proposalsEndpoint { // "$ref": "#/definitions/ErrorMessageDTO" func (pe *proposalsEndpoint) List(resp http.ResponseWriter, req *http.Request, params httprouter.Params) { providerID := req.URL.Query().Get("providerId") - proposals, err := pe.mysteriumClient.FindProposals(req.Context(), providerID) + proposals, err := pe.mysteriumClient.FindProposals(providerID) if err != nil { utils.SendError(resp, err, http.StatusInternalServerError) return diff --git a/tequilapi/endpoints/proposals_test.go b/tequilapi/endpoints/proposals_test.go index 967d09f0ca..6eadbaeacf 100644 --- a/tequilapi/endpoints/proposals_test.go +++ b/tequilapi/endpoints/proposals_test.go @@ -18,7 +18,6 @@ package endpoints import ( - "context" "net/http" "net/http/httptest" "testing" @@ -52,7 +51,7 @@ var proposals = []dto_discovery.ServiceProposal{ func TestProposalsEndpointListByNodeId(t *testing.T) { discoveryAPI := server.NewClientFake() for _, proposal := range proposals { - discoveryAPI.RegisterProposal(context.Background(), proposal, nil) + discoveryAPI.RegisterProposal(proposal, nil) } req, err := http.NewRequest( @@ -95,7 +94,7 @@ func TestProposalsEndpointListByNodeId(t *testing.T) { func TestProposalsEndpointList(t *testing.T) { discoveryAPI := server.NewClientFake() for _, proposal := range proposals { - discoveryAPI.RegisterProposal(context.Background(), proposal, nil) + discoveryAPI.RegisterProposal(proposal, nil) } req, err := http.NewRequest(