From d900f6c499a1612c92a491ccc106f04116a2028c Mon Sep 17 00:00:00 2001 From: Till Faelligen <2353100+S7evinK@users.noreply.github.com> Date: Fri, 10 Feb 2023 13:17:02 +0100 Subject: [PATCH] Remove internal trace API, fix UTs --- cmd/dendrite-monolith-server/main.go | 23 +- federationapi/federationapi_keys_test.go | 2 +- federationapi/federationapi_test.go | 2 +- internal/transactionrequest_test.go | 2 +- roomserver/api/api_trace.go | 427 ----------------------- roomserver/roomserver_test.go | 3 - setup/config/config_federationapi.go | 4 +- setup/mscs/msc2836/msc2836_test.go | 4 +- syncapi/internal/keychange_test.go | 2 +- test/testrig/base.go | 4 +- userapi/api/api_trace.go | 219 ------------ userapi/api/api_trace_logintoken.go | 39 --- userapi/userapi_test.go | 2 - 13 files changed, 15 insertions(+), 718 deletions(-) delete mode 100644 roomserver/api/api_trace.go delete mode 100644 userapi/api/api_trace.go delete mode 100644 userapi/api/api_trace_logintoken.go diff --git a/cmd/dendrite-monolith-server/main.go b/cmd/dendrite-monolith-server/main.go index 0c040f30b..c769f847f 100644 --- a/cmd/dendrite-monolith-server/main.go +++ b/cmd/dendrite-monolith-server/main.go @@ -24,13 +24,11 @@ import ( "github.com/matrix-org/dendrite/federationapi" "github.com/matrix-org/dendrite/keyserver" "github.com/matrix-org/dendrite/roomserver" - "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/setup" basepkg "github.com/matrix-org/dendrite/setup/base" "github.com/matrix-org/dendrite/setup/config" "github.com/matrix-org/dendrite/setup/mscs" "github.com/matrix-org/dendrite/userapi" - uapi "github.com/matrix-org/dendrite/userapi/api" ) var ( @@ -52,14 +50,7 @@ func main() { federation := base.CreateFederationClient() - rsImpl := roomserver.NewInternalAPI(base) - // call functions directly on the impl unless running in HTTP mode - rsAPI := rsImpl - if traceInternal { - rsAPI = &api.RoomserverInternalAPITrace{ - Impl: rsAPI, - } - } + rsAPI := roomserver.NewInternalAPI(base) fsAPI := federationapi.NewInternalAPI( base, federation, rsAPI, base.Caches, nil, false, @@ -73,20 +64,14 @@ func main() { pgClient := base.PushGatewayHTTPClient() userAPI := userapi.NewInternalAPI(base, &cfg.UserAPI, cfg.Derived.ApplicationServices, keyAPI, rsAPI, pgClient) - if traceInternal { - userAPI = &uapi.UserInternalAPITrace{ - Impl: userAPI, - } - } - asAPI := appservice.NewInternalAPI(base, userAPI, rsAPI) // The underlying roomserver implementation needs to be able to call the fedsender. // This is different to rsAPI which can be the http client which doesn't need this // dependency. Other components also need updating after their dependencies are up. - rsImpl.SetFederationAPI(fsAPI, keyRing) - rsImpl.SetAppserviceAPI(asAPI) - rsImpl.SetUserAPI(userAPI) + rsAPI.SetFederationAPI(fsAPI, keyRing) + rsAPI.SetAppserviceAPI(asAPI) + rsAPI.SetUserAPI(userAPI) keyImpl.SetUserAPI(userAPI) monolith := setup.Monolith{ diff --git a/federationapi/federationapi_keys_test.go b/federationapi/federationapi_keys_test.go index 8e56b846c..4a961bb72 100644 --- a/federationapi/federationapi_keys_test.go +++ b/federationapi/federationapi_keys_test.go @@ -78,7 +78,7 @@ func TestMain(m *testing.M) { cfg := &config.Dendrite{} cfg.Defaults(config.DefaultOpts{ Generate: true, - SingleDatabase: true, + SingleDatabase: false, }) cfg.Global.ServerName = gomatrixserverlib.ServerName(s.name) cfg.Global.PrivateKey = testPriv diff --git a/federationapi/federationapi_test.go b/federationapi/federationapi_test.go index 01c251c2a..99b742d47 100644 --- a/federationapi/federationapi_test.go +++ b/federationapi/federationapi_test.go @@ -267,7 +267,7 @@ func TestRoomsV3URLEscapeDoNot404(t *testing.T) { cfg := &config.Dendrite{} cfg.Defaults(config.DefaultOpts{ Generate: true, - SingleDatabase: true, + SingleDatabase: false, }) cfg.Global.KeyID = gomatrixserverlib.KeyID("ed25519:auto") cfg.Global.ServerName = gomatrixserverlib.ServerName("localhost") diff --git a/internal/transactionrequest_test.go b/internal/transactionrequest_test.go index fac2872c1..93c6fb6f1 100644 --- a/internal/transactionrequest_test.go +++ b/internal/transactionrequest_test.go @@ -647,7 +647,7 @@ func init() { } type testRoomserverAPI struct { - rsAPI.RoomserverInternalAPITrace + rsAPI.RoomserverInternalAPI inputRoomEvents []rsAPI.InputRoomEvent queryStateAfterEvents func(*rsAPI.QueryStateAfterEventsRequest) rsAPI.QueryStateAfterEventsResponse queryEventsByID func(req *rsAPI.QueryEventsByIDRequest) rsAPI.QueryEventsByIDResponse diff --git a/roomserver/api/api_trace.go b/roomserver/api/api_trace.go deleted file mode 100644 index 166b651a2..000000000 --- a/roomserver/api/api_trace.go +++ /dev/null @@ -1,427 +0,0 @@ -package api - -import ( - "context" - "encoding/json" - "fmt" - - "github.com/matrix-org/gomatrixserverlib" - "github.com/matrix-org/util" - - asAPI "github.com/matrix-org/dendrite/appservice/api" - fsAPI "github.com/matrix-org/dendrite/federationapi/api" - userapi "github.com/matrix-org/dendrite/userapi/api" -) - -// RoomserverInternalAPITrace wraps a RoomserverInternalAPI and logs the -// complete request/response/error -type RoomserverInternalAPITrace struct { - Impl RoomserverInternalAPI -} - -func (t *RoomserverInternalAPITrace) QueryLeftUsers(ctx context.Context, req *QueryLeftUsersRequest, res *QueryLeftUsersResponse) error { - err := t.Impl.QueryLeftUsers(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryLeftUsers req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) SetFederationAPI(fsAPI fsAPI.RoomserverFederationAPI, keyRing *gomatrixserverlib.KeyRing) { - t.Impl.SetFederationAPI(fsAPI, keyRing) -} - -func (t *RoomserverInternalAPITrace) SetAppserviceAPI(asAPI asAPI.AppServiceInternalAPI) { - t.Impl.SetAppserviceAPI(asAPI) -} - -func (t *RoomserverInternalAPITrace) SetUserAPI(userAPI userapi.RoomserverUserAPI) { - t.Impl.SetUserAPI(userAPI) -} - -func (t *RoomserverInternalAPITrace) InputRoomEvents( - ctx context.Context, - req *InputRoomEventsRequest, - res *InputRoomEventsResponse, -) error { - err := t.Impl.InputRoomEvents(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("InputRoomEvents req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformInvite( - ctx context.Context, - req *PerformInviteRequest, - res *PerformInviteResponse, -) error { - err := t.Impl.PerformInvite(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformInvite req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformPeek( - ctx context.Context, - req *PerformPeekRequest, - res *PerformPeekResponse, -) error { - err := t.Impl.PerformPeek(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformPeek req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformUnpeek( - ctx context.Context, - req *PerformUnpeekRequest, - res *PerformUnpeekResponse, -) error { - err := t.Impl.PerformUnpeek(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformUnpeek req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformRoomUpgrade( - ctx context.Context, - req *PerformRoomUpgradeRequest, - res *PerformRoomUpgradeResponse, -) error { - err := t.Impl.PerformRoomUpgrade(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformRoomUpgrade req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformJoin( - ctx context.Context, - req *PerformJoinRequest, - res *PerformJoinResponse, -) error { - err := t.Impl.PerformJoin(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformJoin req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformLeave( - ctx context.Context, - req *PerformLeaveRequest, - res *PerformLeaveResponse, -) error { - err := t.Impl.PerformLeave(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformLeave req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformPublish( - ctx context.Context, - req *PerformPublishRequest, - res *PerformPublishResponse, -) error { - err := t.Impl.PerformPublish(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformPublish req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformAdminEvacuateRoom( - ctx context.Context, - req *PerformAdminEvacuateRoomRequest, - res *PerformAdminEvacuateRoomResponse, -) error { - err := t.Impl.PerformAdminEvacuateRoom(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformAdminEvacuateRoom req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformAdminEvacuateUser( - ctx context.Context, - req *PerformAdminEvacuateUserRequest, - res *PerformAdminEvacuateUserResponse, -) error { - err := t.Impl.PerformAdminEvacuateUser(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformAdminEvacuateUser req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformAdminPurgeRoom( - ctx context.Context, - req *PerformAdminPurgeRoomRequest, - res *PerformAdminPurgeRoomResponse, -) error { - err := t.Impl.PerformAdminPurgeRoom(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformAdminPurgeRoom req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformAdminDownloadState( - ctx context.Context, - req *PerformAdminDownloadStateRequest, - res *PerformAdminDownloadStateResponse, -) error { - err := t.Impl.PerformAdminDownloadState(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformAdminDownloadState req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformInboundPeek( - ctx context.Context, - req *PerformInboundPeekRequest, - res *PerformInboundPeekResponse, -) error { - err := t.Impl.PerformInboundPeek(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformInboundPeek req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryPublishedRooms( - ctx context.Context, - req *QueryPublishedRoomsRequest, - res *QueryPublishedRoomsResponse, -) error { - err := t.Impl.QueryPublishedRooms(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryPublishedRooms req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryLatestEventsAndState( - ctx context.Context, - req *QueryLatestEventsAndStateRequest, - res *QueryLatestEventsAndStateResponse, -) error { - err := t.Impl.QueryLatestEventsAndState(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryLatestEventsAndState req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryStateAfterEvents( - ctx context.Context, - req *QueryStateAfterEventsRequest, - res *QueryStateAfterEventsResponse, -) error { - err := t.Impl.QueryStateAfterEvents(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryStateAfterEvents req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryEventsByID( - ctx context.Context, - req *QueryEventsByIDRequest, - res *QueryEventsByIDResponse, -) error { - err := t.Impl.QueryEventsByID(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryEventsByID req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryMembershipForUser( - ctx context.Context, - req *QueryMembershipForUserRequest, - res *QueryMembershipForUserResponse, -) error { - err := t.Impl.QueryMembershipForUser(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryMembershipForUser req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryMembershipsForRoom( - ctx context.Context, - req *QueryMembershipsForRoomRequest, - res *QueryMembershipsForRoomResponse, -) error { - err := t.Impl.QueryMembershipsForRoom(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryMembershipsForRoom req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryServerJoinedToRoom( - ctx context.Context, - req *QueryServerJoinedToRoomRequest, - res *QueryServerJoinedToRoomResponse, -) error { - err := t.Impl.QueryServerJoinedToRoom(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryServerJoinedToRoom req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryServerAllowedToSeeEvent( - ctx context.Context, - req *QueryServerAllowedToSeeEventRequest, - res *QueryServerAllowedToSeeEventResponse, -) error { - err := t.Impl.QueryServerAllowedToSeeEvent(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryServerAllowedToSeeEvent req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryMissingEvents( - ctx context.Context, - req *QueryMissingEventsRequest, - res *QueryMissingEventsResponse, -) error { - err := t.Impl.QueryMissingEvents(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryMissingEvents req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryStateAndAuthChain( - ctx context.Context, - req *QueryStateAndAuthChainRequest, - res *QueryStateAndAuthChainResponse, -) error { - err := t.Impl.QueryStateAndAuthChain(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryStateAndAuthChain req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformBackfill( - ctx context.Context, - req *PerformBackfillRequest, - res *PerformBackfillResponse, -) error { - err := t.Impl.PerformBackfill(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformBackfill req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) PerformForget( - ctx context.Context, - req *PerformForgetRequest, - res *PerformForgetResponse, -) error { - err := t.Impl.PerformForget(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("PerformForget req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryRoomVersionCapabilities( - ctx context.Context, - req *QueryRoomVersionCapabilitiesRequest, - res *QueryRoomVersionCapabilitiesResponse, -) error { - err := t.Impl.QueryRoomVersionCapabilities(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryRoomVersionCapabilities req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryRoomVersionForRoom( - ctx context.Context, - req *QueryRoomVersionForRoomRequest, - res *QueryRoomVersionForRoomResponse, -) error { - err := t.Impl.QueryRoomVersionForRoom(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryRoomVersionForRoom req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) SetRoomAlias( - ctx context.Context, - req *SetRoomAliasRequest, - res *SetRoomAliasResponse, -) error { - err := t.Impl.SetRoomAlias(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("SetRoomAlias req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) GetRoomIDForAlias( - ctx context.Context, - req *GetRoomIDForAliasRequest, - res *GetRoomIDForAliasResponse, -) error { - err := t.Impl.GetRoomIDForAlias(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("GetRoomIDForAlias req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) GetAliasesForRoomID( - ctx context.Context, - req *GetAliasesForRoomIDRequest, - res *GetAliasesForRoomIDResponse, -) error { - err := t.Impl.GetAliasesForRoomID(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("GetAliasesForRoomID req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) RemoveRoomAlias( - ctx context.Context, - req *RemoveRoomAliasRequest, - res *RemoveRoomAliasResponse, -) error { - err := t.Impl.RemoveRoomAlias(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("RemoveRoomAlias req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryCurrentState(ctx context.Context, req *QueryCurrentStateRequest, res *QueryCurrentStateResponse) error { - err := t.Impl.QueryCurrentState(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryCurrentState req=%+v res=%+v", js(req), js(res)) - return err -} - -// QueryRoomsForUser retrieves a list of room IDs matching the given query. -func (t *RoomserverInternalAPITrace) QueryRoomsForUser(ctx context.Context, req *QueryRoomsForUserRequest, res *QueryRoomsForUserResponse) error { - err := t.Impl.QueryRoomsForUser(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryRoomsForUser req=%+v res=%+v", js(req), js(res)) - return err -} - -// QueryBulkStateContent does a bulk query for state event content in the given rooms. -func (t *RoomserverInternalAPITrace) QueryBulkStateContent(ctx context.Context, req *QueryBulkStateContentRequest, res *QueryBulkStateContentResponse) error { - err := t.Impl.QueryBulkStateContent(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryBulkStateContent req=%+v res=%+v", js(req), js(res)) - return err -} - -// QuerySharedUsers returns a list of users who share at least 1 room in common with the given user. -func (t *RoomserverInternalAPITrace) QuerySharedUsers(ctx context.Context, req *QuerySharedUsersRequest, res *QuerySharedUsersResponse) error { - err := t.Impl.QuerySharedUsers(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QuerySharedUsers req=%+v res=%+v", js(req), js(res)) - return err -} - -// QueryKnownUsers returns a list of users that we know about from our joined rooms. -func (t *RoomserverInternalAPITrace) QueryKnownUsers(ctx context.Context, req *QueryKnownUsersRequest, res *QueryKnownUsersResponse) error { - err := t.Impl.QueryKnownUsers(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryKnownUsers req=%+v res=%+v", js(req), js(res)) - return err -} - -// QueryServerBannedFromRoom returns whether a server is banned from a room by server ACLs. -func (t *RoomserverInternalAPITrace) QueryServerBannedFromRoom(ctx context.Context, req *QueryServerBannedFromRoomRequest, res *QueryServerBannedFromRoomResponse) error { - err := t.Impl.QueryServerBannedFromRoom(ctx, req, res) - util.GetLogger(ctx).WithError(err).Infof("QueryServerBannedFromRoom req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryAuthChain( - ctx context.Context, - request *QueryAuthChainRequest, - response *QueryAuthChainResponse, -) error { - err := t.Impl.QueryAuthChain(ctx, request, response) - util.GetLogger(ctx).WithError(err).Infof("QueryAuthChain req=%+v res=%+v", js(request), js(response)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryRestrictedJoinAllowed( - ctx context.Context, - request *QueryRestrictedJoinAllowedRequest, - response *QueryRestrictedJoinAllowedResponse, -) error { - err := t.Impl.QueryRestrictedJoinAllowed(ctx, request, response) - util.GetLogger(ctx).WithError(err).Infof("QueryRestrictedJoinAllowed req=%+v res=%+v", js(request), js(response)) - return err -} - -func (t *RoomserverInternalAPITrace) QueryMembershipAtEvent( - ctx context.Context, - request *QueryMembershipAtEventRequest, - response *QueryMembershipAtEventResponse, -) error { - err := t.Impl.QueryMembershipAtEvent(ctx, request, response) - util.GetLogger(ctx).WithError(err).Infof("QueryMembershipAtEvent req=%+v res=%+v", js(request), js(response)) - return err -} - -func js(thing interface{}) string { - b, err := json.Marshal(thing) - if err != nil { - return fmt.Sprintf("Marshal error:%s", err) - } - return string(b) -} diff --git a/roomserver/roomserver_test.go b/roomserver/roomserver_test.go index 9e64617f9..7ba01e50f 100644 --- a/roomserver/roomserver_test.go +++ b/roomserver/roomserver_test.go @@ -204,9 +204,6 @@ func Test_QueryLeftUsers(t *testing.T) { } testCase(rsAPI) - // also test tracing - traceAPI := &api.RoomserverInternalAPITrace{Impl: rsAPI} - testCase(traceAPI) }) } diff --git a/setup/config/config_federationapi.go b/setup/config/config_federationapi.go index ecfcfd455..8c1540b57 100644 --- a/setup/config/config_federationapi.go +++ b/setup/config/config_federationapi.go @@ -1,6 +1,8 @@ package config -import "github.com/matrix-org/gomatrixserverlib" +import ( + "github.com/matrix-org/gomatrixserverlib" +) type FederationAPI struct { Matrix *Global `yaml:"-"` diff --git a/setup/mscs/msc2836/msc2836_test.go b/setup/mscs/msc2836/msc2836_test.go index 7d9552683..f12fbbfcb 100644 --- a/setup/mscs/msc2836/msc2836_test.go +++ b/setup/mscs/msc2836/msc2836_test.go @@ -499,7 +499,7 @@ func assertUnsignedChildren(t *testing.T, ev gomatrixserverlib.ClientEvent, relT } type testUserAPI struct { - userapi.UserInternalAPITrace + userapi.UserInternalAPI accessTokens map[string]userapi.Device } @@ -516,7 +516,7 @@ func (u *testUserAPI) QueryAccessToken(ctx context.Context, req *userapi.QueryAc type testRoomserverAPI struct { // use a trace API as it implements method stubs so we don't need to have them here. // We'll override the functions we care about. - roomserver.RoomserverInternalAPITrace + roomserver.RoomserverInternalAPI userToJoinedRooms map[string][]string events map[string]*gomatrixserverlib.HeaderedEvent } diff --git a/syncapi/internal/keychange_test.go b/syncapi/internal/keychange_test.go index 53f3e5a40..d64bea11e 100644 --- a/syncapi/internal/keychange_test.go +++ b/syncapi/internal/keychange_test.go @@ -64,7 +64,7 @@ func (k *mockKeyAPI) QuerySignatures(ctx context.Context, req *keyapi.QuerySigna } type mockRoomserverAPI struct { - api.RoomserverInternalAPITrace + api.RoomserverInternalAPI roomIDToJoinedMembers map[string][]string } diff --git a/test/testrig/base.go b/test/testrig/base.go index 34f219c5f..2bb6cd282 100644 --- a/test/testrig/base.go +++ b/test/testrig/base.go @@ -67,7 +67,7 @@ func CreateBaseDendrite(t *testing.T, dbType test.DBType) (*base.BaseDendrite, f case test.DBTypeSQLite: cfg.Defaults(config.DefaultOpts{ Generate: true, - SingleDatabase: true, + SingleDatabase: false, }) cfg.Global.ServerName = "test" @@ -103,7 +103,7 @@ func Base(cfg *config.Dendrite) (*base.BaseDendrite, nats.JetStreamContext, *nat cfg = &config.Dendrite{} cfg.Defaults(config.DefaultOpts{ Generate: true, - SingleDatabase: true, + SingleDatabase: false, }) } cfg.Global.JetStream.InMemory = true diff --git a/userapi/api/api_trace.go b/userapi/api/api_trace.go deleted file mode 100644 index d10b5767b..000000000 --- a/userapi/api/api_trace.go +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright 2021 The Matrix.org Foundation C.I.C. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package api - -import ( - "context" - "encoding/json" - "fmt" - - "github.com/matrix-org/util" -) - -// UserInternalAPITrace wraps a RoomserverInternalAPI and logs the -// complete request/response/error -type UserInternalAPITrace struct { - Impl UserInternalAPI -} - -func (t *UserInternalAPITrace) InputAccountData(ctx context.Context, req *InputAccountDataRequest, res *InputAccountDataResponse) error { - err := t.Impl.InputAccountData(ctx, req, res) - util.GetLogger(ctx).Infof("InputAccountData req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformAccountCreation(ctx context.Context, req *PerformAccountCreationRequest, res *PerformAccountCreationResponse) error { - err := t.Impl.PerformAccountCreation(ctx, req, res) - util.GetLogger(ctx).Infof("PerformAccountCreation req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformPasswordUpdate(ctx context.Context, req *PerformPasswordUpdateRequest, res *PerformPasswordUpdateResponse) error { - err := t.Impl.PerformPasswordUpdate(ctx, req, res) - util.GetLogger(ctx).Infof("PerformPasswordUpdate req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) PerformDeviceCreation(ctx context.Context, req *PerformDeviceCreationRequest, res *PerformDeviceCreationResponse) error { - err := t.Impl.PerformDeviceCreation(ctx, req, res) - util.GetLogger(ctx).Infof("PerformDeviceCreation req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformDeviceDeletion(ctx context.Context, req *PerformDeviceDeletionRequest, res *PerformDeviceDeletionResponse) error { - err := t.Impl.PerformDeviceDeletion(ctx, req, res) - util.GetLogger(ctx).Infof("PerformDeviceDeletion req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformLastSeenUpdate(ctx context.Context, req *PerformLastSeenUpdateRequest, res *PerformLastSeenUpdateResponse) error { - err := t.Impl.PerformLastSeenUpdate(ctx, req, res) - util.GetLogger(ctx).Infof("PerformLastSeenUpdate req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformDeviceUpdate(ctx context.Context, req *PerformDeviceUpdateRequest, res *PerformDeviceUpdateResponse) error { - err := t.Impl.PerformDeviceUpdate(ctx, req, res) - util.GetLogger(ctx).Infof("PerformDeviceUpdate req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformAccountDeactivation(ctx context.Context, req *PerformAccountDeactivationRequest, res *PerformAccountDeactivationResponse) error { - err := t.Impl.PerformAccountDeactivation(ctx, req, res) - util.GetLogger(ctx).Infof("PerformAccountDeactivation req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformOpenIDTokenCreation(ctx context.Context, req *PerformOpenIDTokenCreationRequest, res *PerformOpenIDTokenCreationResponse) error { - err := t.Impl.PerformOpenIDTokenCreation(ctx, req, res) - util.GetLogger(ctx).Infof("PerformOpenIDTokenCreation req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformKeyBackup(ctx context.Context, req *PerformKeyBackupRequest, res *PerformKeyBackupResponse) error { - err := t.Impl.PerformKeyBackup(ctx, req, res) - util.GetLogger(ctx).Infof("PerformKeyBackup req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformPusherSet(ctx context.Context, req *PerformPusherSetRequest, res *struct{}) error { - err := t.Impl.PerformPusherSet(ctx, req, res) - util.GetLogger(ctx).Infof("PerformPusherSet req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformPusherDeletion(ctx context.Context, req *PerformPusherDeletionRequest, res *struct{}) error { - err := t.Impl.PerformPusherDeletion(ctx, req, res) - util.GetLogger(ctx).Infof("PerformPusherDeletion req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) PerformPushRulesPut(ctx context.Context, req *PerformPushRulesPutRequest, res *struct{}) error { - err := t.Impl.PerformPushRulesPut(ctx, req, res) - util.GetLogger(ctx).Infof("PerformPushRulesPut req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryKeyBackup(ctx context.Context, req *QueryKeyBackupRequest, res *QueryKeyBackupResponse) error { - err := t.Impl.QueryKeyBackup(ctx, req, res) - util.GetLogger(ctx).Infof("QueryKeyBackup req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryProfile(ctx context.Context, req *QueryProfileRequest, res *QueryProfileResponse) error { - err := t.Impl.QueryProfile(ctx, req, res) - util.GetLogger(ctx).Infof("QueryProfile req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryAccessToken(ctx context.Context, req *QueryAccessTokenRequest, res *QueryAccessTokenResponse) error { - err := t.Impl.QueryAccessToken(ctx, req, res) - util.GetLogger(ctx).Infof("QueryAccessToken req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryDevices(ctx context.Context, req *QueryDevicesRequest, res *QueryDevicesResponse) error { - err := t.Impl.QueryDevices(ctx, req, res) - util.GetLogger(ctx).Infof("QueryDevices req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryAccountData(ctx context.Context, req *QueryAccountDataRequest, res *QueryAccountDataResponse) error { - err := t.Impl.QueryAccountData(ctx, req, res) - util.GetLogger(ctx).Infof("QueryAccountData req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryDeviceInfos(ctx context.Context, req *QueryDeviceInfosRequest, res *QueryDeviceInfosResponse) error { - err := t.Impl.QueryDeviceInfos(ctx, req, res) - util.GetLogger(ctx).Infof("QueryDeviceInfos req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QuerySearchProfiles(ctx context.Context, req *QuerySearchProfilesRequest, res *QuerySearchProfilesResponse) error { - err := t.Impl.QuerySearchProfiles(ctx, req, res) - util.GetLogger(ctx).Infof("QuerySearchProfiles req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryOpenIDToken(ctx context.Context, req *QueryOpenIDTokenRequest, res *QueryOpenIDTokenResponse) error { - err := t.Impl.QueryOpenIDToken(ctx, req, res) - util.GetLogger(ctx).Infof("QueryOpenIDToken req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryPushers(ctx context.Context, req *QueryPushersRequest, res *QueryPushersResponse) error { - err := t.Impl.QueryPushers(ctx, req, res) - util.GetLogger(ctx).Infof("QueryPushers req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryPushRules(ctx context.Context, req *QueryPushRulesRequest, res *QueryPushRulesResponse) error { - err := t.Impl.QueryPushRules(ctx, req, res) - util.GetLogger(ctx).Infof("QueryPushRules req=%+v res=%+v", js(req), js(res)) - return err -} -func (t *UserInternalAPITrace) QueryNotifications(ctx context.Context, req *QueryNotificationsRequest, res *QueryNotificationsResponse) error { - err := t.Impl.QueryNotifications(ctx, req, res) - util.GetLogger(ctx).Infof("QueryNotifications req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) SetAvatarURL(ctx context.Context, req *PerformSetAvatarURLRequest, res *PerformSetAvatarURLResponse) error { - err := t.Impl.SetAvatarURL(ctx, req, res) - util.GetLogger(ctx).Infof("SetAvatarURL req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) QueryNumericLocalpart(ctx context.Context, req *QueryNumericLocalpartRequest, res *QueryNumericLocalpartResponse) error { - err := t.Impl.QueryNumericLocalpart(ctx, req, res) - util.GetLogger(ctx).Infof("QueryNumericLocalpart req= res=%+v", js(res)) - return err -} - -func (t *UserInternalAPITrace) QueryAccountAvailability(ctx context.Context, req *QueryAccountAvailabilityRequest, res *QueryAccountAvailabilityResponse) error { - err := t.Impl.QueryAccountAvailability(ctx, req, res) - util.GetLogger(ctx).Infof("QueryAccountAvailability req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) SetDisplayName(ctx context.Context, req *PerformUpdateDisplayNameRequest, res *PerformUpdateDisplayNameResponse) error { - err := t.Impl.SetDisplayName(ctx, req, res) - util.GetLogger(ctx).Infof("SetDisplayName req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) QueryAccountByPassword(ctx context.Context, req *QueryAccountByPasswordRequest, res *QueryAccountByPasswordResponse) error { - err := t.Impl.QueryAccountByPassword(ctx, req, res) - util.GetLogger(ctx).Infof("QueryAccountByPassword req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) QueryLocalpartForThreePID(ctx context.Context, req *QueryLocalpartForThreePIDRequest, res *QueryLocalpartForThreePIDResponse) error { - err := t.Impl.QueryLocalpartForThreePID(ctx, req, res) - util.GetLogger(ctx).Infof("QueryLocalpartForThreePID req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) QueryThreePIDsForLocalpart(ctx context.Context, req *QueryThreePIDsForLocalpartRequest, res *QueryThreePIDsForLocalpartResponse) error { - err := t.Impl.QueryThreePIDsForLocalpart(ctx, req, res) - util.GetLogger(ctx).Infof("QueryThreePIDsForLocalpart req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) PerformForgetThreePID(ctx context.Context, req *PerformForgetThreePIDRequest, res *struct{}) error { - err := t.Impl.PerformForgetThreePID(ctx, req, res) - util.GetLogger(ctx).Infof("PerformForgetThreePID req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) PerformSaveThreePIDAssociation(ctx context.Context, req *PerformSaveThreePIDAssociationRequest, res *struct{}) error { - err := t.Impl.PerformSaveThreePIDAssociation(ctx, req, res) - util.GetLogger(ctx).Infof("PerformSaveThreePIDAssociation req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) QueryAccountByLocalpart(ctx context.Context, req *QueryAccountByLocalpartRequest, res *QueryAccountByLocalpartResponse) error { - err := t.Impl.QueryAccountByLocalpart(ctx, req, res) - util.GetLogger(ctx).Infof("QueryAccountByLocalpart req=%+v res=%+v", js(req), js(res)) - return err -} - -func js(thing interface{}) string { - b, err := json.Marshal(thing) - if err != nil { - return fmt.Sprintf("Marshal error:%s", err) - } - return string(b) -} diff --git a/userapi/api/api_trace_logintoken.go b/userapi/api/api_trace_logintoken.go deleted file mode 100644 index e60dae594..000000000 --- a/userapi/api/api_trace_logintoken.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2021 The Matrix.org Foundation C.I.C. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package api - -import ( - "context" - - "github.com/matrix-org/util" -) - -func (t *UserInternalAPITrace) PerformLoginTokenCreation(ctx context.Context, req *PerformLoginTokenCreationRequest, res *PerformLoginTokenCreationResponse) error { - err := t.Impl.PerformLoginTokenCreation(ctx, req, res) - util.GetLogger(ctx).Infof("PerformLoginTokenCreation req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) PerformLoginTokenDeletion(ctx context.Context, req *PerformLoginTokenDeletionRequest, res *PerformLoginTokenDeletionResponse) error { - err := t.Impl.PerformLoginTokenDeletion(ctx, req, res) - util.GetLogger(ctx).Infof("PerformLoginTokenDeletion req=%+v res=%+v", js(req), js(res)) - return err -} - -func (t *UserInternalAPITrace) QueryLoginToken(ctx context.Context, req *QueryLoginTokenRequest, res *QueryLoginTokenResponse) error { - err := t.Impl.QueryLoginToken(ctx, req, res) - util.GetLogger(ctx).Infof("QueryLoginToken req=%+v res=%+v", js(req), js(res)) - return err -} diff --git a/userapi/userapi_test.go b/userapi/userapi_test.go index a9e882836..68d08c2fd 100644 --- a/userapi/userapi_test.go +++ b/userapi/userapi_test.go @@ -330,7 +330,5 @@ func TestQueryAccountByLocalpart(t *testing.T) { } testCases(t, intAPI) - // also test tracing - testCases(t, &api.UserInternalAPITrace{Impl: intAPI}) }) }