Skip to content

Commit

Permalink
Add batch mode for provider diagnostic endpoint
Browse files Browse the repository at this point in the history
Signed-off-by: Anton Litvinov <[email protected]>
  • Loading branch information
Zensey committed May 24, 2024
1 parent 6a2878c commit ef81c6a
Show file tree
Hide file tree
Showing 7 changed files with 202 additions and 75 deletions.
96 changes: 50 additions & 46 deletions cmd/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,56 +45,60 @@ func (di *Dependencies) bootstrapTequilapi(nodeOptions node.Options, listener ne
}
tequilaApiClient := tequilapi_client.NewClient(nodeOptions.TequilapiAddress, nodeOptions.TequilapiPort)

handlers := []func(engine *gin.Engine) error{
func(e *gin.Engine) error {
if err := tequilapi_endpoints.AddRoutesForSSE(e, di.StateKeeper, di.EventBus); err != nil {
return err
}
return nil
},
func(e *gin.Engine) error {
if config.GetBool(config.FlagPProfEnable) {
tequilapi_endpoints.AddRoutesForPProf(e)
}
return nil
},
func(e *gin.Engine) error {
e.GET("/healthcheck", tequilapi_endpoints.HealthCheckEndpointFactory(time.Now, os.Getpid).HealthCheck)
return nil
},
tequilapi_endpoints.AddRouteForStop(utils.SoftKiller(di.Shutdown)),
tequilapi_endpoints.AddRoutesForAuthentication(di.Authenticator, di.JWTAuthenticator, di.SSOMystnodes),
tequilapi_endpoints.AddRoutesForIdentities(di.IdentityManager, di.IdentitySelector, di.IdentityRegistry, di.ConsumerBalanceTracker, di.AddressProvider, di.HermesChannelRepository, di.BCHelper, di.Transactor, di.BeneficiaryProvider, di.IdentityMover, di.BeneficiaryAddressStorage, di.HermesMigrator),
tequilapi_endpoints.AddRoutesForConnection(di.MultiConnectionManager, di.StateKeeper, di.ProposalRepository, di.IdentityRegistry, di.EventBus, di.AddressProvider),
tequilapi_endpoints.AddRoutesForSessions(di.SessionStorage),
tequilapi_endpoints.AddRoutesForConnectionLocation(di.IPResolver, di.LocationResolver, di.LocationResolver),
tequilapi_endpoints.AddRoutesForProposals(di.ProposalRepository, di.PricingHelper, di.LocationResolver, di.FilterPresetStorage, di.NATProber),
tequilapi_endpoints.AddRoutesForService(di.ServicesManager, services.JSONParsersByType, di.ProposalRepository, tequilaApiClient),
tequilapi_endpoints.AddRoutesForAccessPolicies(di.HTTPClient, config.GetString(config.FlagAccessPolicyAddress)),
tequilapi_endpoints.AddRoutesForNAT(di.StateKeeper, di.NATProber),
tequilapi_endpoints.AddRoutesForNodeUI(versionmanager.NewVersionManager(di.UIServer, di.HTTPClient, di.uiVersionConfig)),
tequilapi_endpoints.AddRoutesForNode(di.NodeStatusTracker, di.NodeStatsTracker),
tequilapi_endpoints.AddRoutesForTransactor(di.IdentityRegistry, di.Transactor, di.Affiliator, di.HermesPromiseSettler, di.SettlementHistoryStorage, di.AddressProvider, di.BeneficiaryProvider, di.BeneficiarySaver, di.PilvytisAPI),
tequilapi_endpoints.AddRoutesForAffiliator(di.Affiliator),
tequilapi_endpoints.AddRoutesForConfig,
tequilapi_endpoints.AddRoutesForMMN(di.MMN, di.SSOMystnodes, di.Authenticator),
tequilapi_endpoints.AddRoutesForFeedback(di.Reporter),
tequilapi_endpoints.AddRoutesForConnectivityStatus(di.SessionConnectivityStatusStorage),
tequilapi_endpoints.AddRoutesForDocs,
tequilapi_endpoints.AddRoutesForCurrencyExchange(di.PilvytisAPI),
tequilapi_endpoints.AddRoutesForPilvytis(di.PilvytisAPI, di.PilvytisOrderIssuer, di.LocationResolver),
tequilapi_endpoints.AddRoutesForTerms,
tequilapi_endpoints.AddEntertainmentRoutes(entertainment.NewEstimator(
config.FlagPaymentPriceGiB.Value,
config.FlagPaymentPriceHour.Value,
)),
tequilapi_endpoints.AddRoutesForValidator,
}
if nodeOptions.ProvChecker {
handlers = append(handlers, tequilapi_endpoints.AddRoutesForConnectionDiag(di.MultiConnectionDiagManager, di.StateKeeper, di.ProposalRepository, di.IdentityRegistry, di.EventBus, di.EventBus, di.AddressProvider, di.IdentitySelector, nodeOptions))
}

return tequilapi.NewServer(
listener,
nodeOptions,
di.JWTAuthenticator,
[]func(engine *gin.Engine) error{
func(e *gin.Engine) error {
if err := tequilapi_endpoints.AddRoutesForSSE(e, di.StateKeeper, di.EventBus); err != nil {
return err
}
return nil
},
func(e *gin.Engine) error {
if config.GetBool(config.FlagPProfEnable) {
tequilapi_endpoints.AddRoutesForPProf(e)
}
return nil
},
func(e *gin.Engine) error {
e.GET("/healthcheck", tequilapi_endpoints.HealthCheckEndpointFactory(time.Now, os.Getpid).HealthCheck)
return nil
},
tequilapi_endpoints.AddRouteForStop(utils.SoftKiller(di.Shutdown)),
tequilapi_endpoints.AddRoutesForAuthentication(di.Authenticator, di.JWTAuthenticator, di.SSOMystnodes),
tequilapi_endpoints.AddRoutesForIdentities(di.IdentityManager, di.IdentitySelector, di.IdentityRegistry, di.ConsumerBalanceTracker, di.AddressProvider, di.HermesChannelRepository, di.BCHelper, di.Transactor, di.BeneficiaryProvider, di.IdentityMover, di.BeneficiaryAddressStorage, di.HermesMigrator),
tequilapi_endpoints.AddRoutesForConnection(di.MultiConnectionManager, di.StateKeeper, di.ProposalRepository, di.IdentityRegistry, di.EventBus, di.AddressProvider),
tequilapi_endpoints.AddRoutesForConnectionDiag(di.MultiConnectionDiagManager, di.StateKeeper, di.ProposalRepository, di.IdentityRegistry, di.EventBus, di.EventBus, di.AddressProvider, di.IdentitySelector, nodeOptions),
tequilapi_endpoints.AddRoutesForSessions(di.SessionStorage),
tequilapi_endpoints.AddRoutesForConnectionLocation(di.IPResolver, di.LocationResolver, di.LocationResolver),
tequilapi_endpoints.AddRoutesForProposals(di.ProposalRepository, di.PricingHelper, di.LocationResolver, di.FilterPresetStorage, di.NATProber),
tequilapi_endpoints.AddRoutesForService(di.ServicesManager, services.JSONParsersByType, di.ProposalRepository, tequilaApiClient),
tequilapi_endpoints.AddRoutesForAccessPolicies(di.HTTPClient, config.GetString(config.FlagAccessPolicyAddress)),
tequilapi_endpoints.AddRoutesForNAT(di.StateKeeper, di.NATProber),
tequilapi_endpoints.AddRoutesForNodeUI(versionmanager.NewVersionManager(di.UIServer, di.HTTPClient, di.uiVersionConfig)),
tequilapi_endpoints.AddRoutesForNode(di.NodeStatusTracker, di.NodeStatsTracker),
tequilapi_endpoints.AddRoutesForTransactor(di.IdentityRegistry, di.Transactor, di.Affiliator, di.HermesPromiseSettler, di.SettlementHistoryStorage, di.AddressProvider, di.BeneficiaryProvider, di.BeneficiarySaver, di.PilvytisAPI),
tequilapi_endpoints.AddRoutesForAffiliator(di.Affiliator),
tequilapi_endpoints.AddRoutesForConfig,
tequilapi_endpoints.AddRoutesForMMN(di.MMN, di.SSOMystnodes, di.Authenticator),
tequilapi_endpoints.AddRoutesForFeedback(di.Reporter),
tequilapi_endpoints.AddRoutesForConnectivityStatus(di.SessionConnectivityStatusStorage),
tequilapi_endpoints.AddRoutesForDocs,
tequilapi_endpoints.AddRoutesForCurrencyExchange(di.PilvytisAPI),
tequilapi_endpoints.AddRoutesForPilvytis(di.PilvytisAPI, di.PilvytisOrderIssuer, di.LocationResolver),
tequilapi_endpoints.AddRoutesForTerms,
tequilapi_endpoints.AddEntertainmentRoutes(entertainment.NewEstimator(
config.FlagPaymentPriceGiB.Value,
config.FlagPaymentPriceHour.Value,
)),
tequilapi_endpoints.AddRoutesForValidator,
},
handlers,
)
}

Expand Down
4 changes: 0 additions & 4 deletions cmd/di.go
Original file line number Diff line number Diff line change
Expand Up @@ -952,10 +952,6 @@ func (di *Dependencies) bootstrapQualityComponents(options node.OptionsQuality,
return err
}

if nodeOptions.ProvChecker {
// di.provPinger = connection.NewProviderChecker(di.EventBus)
}

return nil
}

Expand Down
1 change: 0 additions & 1 deletion core/connection/manager-diag.go
Original file line number Diff line number Diff line change
Expand Up @@ -957,7 +957,6 @@ func (m *diagConnectionManager) sendKeepAlivePing(ctx context.Context, channel p
return err
}

_ = start
m.eventBus.Publish(quality.AppTopicConsumerPingP2P, quality.PingEvent{
SessionID: string(sessionID),
Duration: time.Since(start),
Expand Down
1 change: 0 additions & 1 deletion core/connection/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ type testContext struct {
statsReportInterval time.Duration
mockP2P *mockP2PDialer
mockTime time.Time

sync.RWMutex
}

Expand Down
2 changes: 0 additions & 2 deletions services/wireguard/connection/connection.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,6 @@ func (c *Connection) Reconnect(ctx context.Context, options connection.ConnectOp
}

func (c *Connection) start(ctx context.Context, start startConn, options connection.ConnectOptions) (err error) {
log.Info().Msg("+++++++++++++++++++++++++++++++++++++++++++++++++++++ *Connection) start")

var config wg.ServiceConfig
if err = json.Unmarshal(options.SessionConfig, &config); err != nil {
return errors.Wrap(err, "failed to unmarshal connection config")
Expand Down
2 changes: 0 additions & 2 deletions services/wireguard/endpoint/endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,6 @@ func (ce *connectionEndpoint) StartConsumerMode(cfg wgcfg.DeviceConfig) error {
}
return errors.Wrap(err, "could not configure device")
}

// ce.wgClient.Diag()
return nil
}

Expand Down
Loading

0 comments on commit ef81c6a

Please sign in to comment.