func LoadConfigFromFile(filename string) (*configpb.MigrillianConfig, error)
LoadConfigFromFile reads MigrillianConfig from the given filename, which should contain text-protobuf encoded configuration data.
func RunMigration(ctx context.Context, ctrls []*Controller)
RunMigration migrates data from a number of CT logs to Trillian. Each log's migration is coordinated by the corresponding Controller. This function terminates when all Controllers are done (possibly with an error, or as a result of canceling the passed in context).
func ValidateConfig(cfg *configpb.MigrillianConfig) error
ValidateConfig verifies that MigrillianConfig is correct. In particular: - Migration configs are valid (as per ValidateMigrationConfig). - Each migration config has a unique log ID.
func ValidateMigrationConfig(cfg *configpb.MigrationConfig) error
ValidateMigrationConfig verifies that the migration config is sane.
Controller coordinates migration from a CT log to a Trillian tree.
type Controller struct {
// contains filtered or unexported fields
}
func NewController( opts Options, ctClient *client.LogClient, plClient *PreorderedLogClient, ef election2.Factory, mf monitoring.MetricFactory, ) *Controller
NewController creates a Controller configured by the passed in options, CT and Trillian clients, and a master election factory.
The passed in MetricFactory is used to create per-tree metrics, and it should be the same for all instances. However, it is used only once.
func (c *Controller) Run(ctx context.Context) error
Run transfers CT log entries obtained via the CT log client to a Trillian pre-ordered log via Trillian client. If Options.Continuous is true then the migration process runs continuously trying to keep up with the target CT log. Returns if an error occurs, the context is canceled, or all the entries have been transferred (in non-Continuous mode).
func (c *Controller) RunWhenMaster(ctx context.Context) error
RunWhenMaster is a master-elected version of Run method. It executes Run whenever this instance captures mastership of the tree ID. As soon as the instance stops being the master, Run is canceled. The method returns if a severe error occurs, the passed in context is canceled, or fetching is completed (in non-Continuous mode). Releases mastership when terminates.
func (c *Controller) RunWhenMasterWithRestarts(ctx context.Context)
RunWhenMasterWithRestarts calls RunWhenMaster, and, if the migration is configured with continuous mode, restarts it whenever it returns.
Options holds configuration for a Controller.
type Options struct { scanner.FetcherOptions Submitters int ChannelSize int NoConsistencyCheck bool StartDelay time.Duration StopAfter time.Duration }
func OptionsFromConfig(cfg *configpb.MigrationConfig) Options
OptionsFromConfig returns Options created from the passed in config.
PreorderedLogClient is a means of communicating with a single Trillian pre-ordered log tree.
type PreorderedLogClient struct {
// contains filtered or unexported fields
}
func NewPreorderedLogClient( cli trillian.TrillianLogClient, tree *trillian.Tree, idFuncType configpb.IdentityFunction, prefix string, ) (*PreorderedLogClient, error)
NewPreorderedLogClient creates and initializes a pre-ordered log client.