a93e47514a
This is part of metaloop refactoring. We plan to remove irreparable at some point but there was not time for it. Now instead refatoring it for segmentloop its just easier to drop it. Later we still need to drop table with migration step. Change-Id: I270e77f119273d39a1ecdcf5e1c37a5662a29ab4
150 lines
4.4 KiB
Go
150 lines
4.4 KiB
Go
// Copyright (C) 2019 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
package satellite
|
|
|
|
import (
|
|
"context"
|
|
|
|
hw "github.com/jtolds/monkit-hw/v2"
|
|
"github.com/spacemonkeygo/monkit/v3"
|
|
|
|
"storj.io/common/identity"
|
|
"storj.io/private/debug"
|
|
"storj.io/storj/private/server"
|
|
version_checker "storj.io/storj/private/version/checker"
|
|
"storj.io/storj/satellite/accounting"
|
|
"storj.io/storj/satellite/accounting/live"
|
|
"storj.io/storj/satellite/accounting/projectbwcleanup"
|
|
"storj.io/storj/satellite/accounting/rollup"
|
|
"storj.io/storj/satellite/accounting/rolluparchive"
|
|
"storj.io/storj/satellite/accounting/tally"
|
|
"storj.io/storj/satellite/admin"
|
|
"storj.io/storj/satellite/analytics"
|
|
"storj.io/storj/satellite/attribution"
|
|
"storj.io/storj/satellite/audit"
|
|
"storj.io/storj/satellite/compensation"
|
|
"storj.io/storj/satellite/console"
|
|
"storj.io/storj/satellite/console/consoleweb"
|
|
"storj.io/storj/satellite/contact"
|
|
"storj.io/storj/satellite/gc"
|
|
"storj.io/storj/satellite/gracefulexit"
|
|
"storj.io/storj/satellite/mailservice"
|
|
"storj.io/storj/satellite/metainfo"
|
|
"storj.io/storj/satellite/metainfo/expireddeletion"
|
|
"storj.io/storj/satellite/metrics"
|
|
"storj.io/storj/satellite/nodeapiversion"
|
|
"storj.io/storj/satellite/orders"
|
|
"storj.io/storj/satellite/overlay"
|
|
"storj.io/storj/satellite/overlay/straynodes"
|
|
"storj.io/storj/satellite/payments/paymentsconfig"
|
|
"storj.io/storj/satellite/payments/stripecoinpayments"
|
|
"storj.io/storj/satellite/repair/checker"
|
|
"storj.io/storj/satellite/repair/queue"
|
|
"storj.io/storj/satellite/repair/repairer"
|
|
"storj.io/storj/satellite/revocation"
|
|
"storj.io/storj/satellite/snopayouts"
|
|
)
|
|
|
|
var mon = monkit.Package()
|
|
|
|
func init() {
|
|
hw.Register(monkit.Default)
|
|
}
|
|
|
|
// DB is the master database for the satellite.
|
|
//
|
|
// architecture: Master Database
|
|
type DB interface {
|
|
// MigrateToLatest initializes the database
|
|
MigrateToLatest(ctx context.Context) error
|
|
// CheckVersion checks the database is the correct version
|
|
CheckVersion(ctx context.Context) error
|
|
// Close closes the database
|
|
Close() error
|
|
|
|
// TestingMigrateToLatest initializes the database for testplanet.
|
|
TestingMigrateToLatest(ctx context.Context) error
|
|
|
|
// PeerIdentities returns a storage for peer identities
|
|
PeerIdentities() overlay.PeerIdentities
|
|
// OverlayCache returns database for caching overlay information
|
|
OverlayCache() overlay.DB
|
|
// Attribution returns database for partner keys information
|
|
Attribution() attribution.DB
|
|
// StoragenodeAccounting returns database for storing information about storagenode use
|
|
StoragenodeAccounting() accounting.StoragenodeAccounting
|
|
// ProjectAccounting returns database for storing information about project data use
|
|
ProjectAccounting() accounting.ProjectAccounting
|
|
// RepairQueue returns queue for segments that need repairing
|
|
RepairQueue() queue.RepairQueue
|
|
// Console returns database for satellite console
|
|
Console() console.DB
|
|
// Orders returns database for orders
|
|
Orders() orders.DB
|
|
// Containment returns database for containment
|
|
Containment() audit.Containment
|
|
// Buckets returns the database to interact with buckets
|
|
Buckets() metainfo.BucketsDB
|
|
// GracefulExit returns database for graceful exit
|
|
GracefulExit() gracefulexit.DB
|
|
// StripeCoinPayments returns stripecoinpayments database.
|
|
StripeCoinPayments() stripecoinpayments.DB
|
|
// SnoPayout returns database for payouts.
|
|
SNOPayouts() snopayouts.DB
|
|
// Compoensation tracks storage node compensation
|
|
Compensation() compensation.DB
|
|
// Revocation tracks revoked macaroons
|
|
Revocation() revocation.DB
|
|
// NodeAPIVersion tracks nodes observed api usage
|
|
NodeAPIVersion() nodeapiversion.DB
|
|
}
|
|
|
|
// Config is the global config satellite.
|
|
type Config struct {
|
|
Identity identity.Config
|
|
Server server.Config
|
|
Debug debug.Config
|
|
|
|
Admin admin.Config
|
|
|
|
Contact contact.Config
|
|
Overlay overlay.Config
|
|
StrayNodes straynodes.Config
|
|
|
|
Metainfo metainfo.Config
|
|
Orders orders.Config
|
|
|
|
Checker checker.Config
|
|
Repairer repairer.Config
|
|
Audit audit.Config
|
|
|
|
GarbageCollection gc.Config
|
|
|
|
ExpiredDeletion expireddeletion.Config
|
|
|
|
Tally tally.Config
|
|
Rollup rollup.Config
|
|
RollupArchive rolluparchive.Config
|
|
LiveAccounting live.Config
|
|
ProjectBWCleanup projectbwcleanup.Config
|
|
|
|
Mail mailservice.Config
|
|
|
|
Payments paymentsconfig.Config
|
|
|
|
Console consoleweb.Config
|
|
|
|
Version version_checker.Config
|
|
|
|
GracefulExit gracefulexit.Config
|
|
|
|
Metrics metrics.Config
|
|
|
|
Compensation compensation.Config
|
|
|
|
ProjectLimit accounting.ProjectLimitConfig
|
|
|
|
Analytics analytics.Config
|
|
}
|