WIP: Refactor operations to not import state. #14124
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactors the
operations
package so that:OperationCreate
accepts acontext.Context
(expected to be the daemon shutdown context), the operation location, an events server, and a*operations.Opts
.operations.Options
andoperations.ClusterOptions
can be used to specify optional operation create arguments.state.State
is no longer imported by the operations package. Instead, a transaction function is required for LXD daemon operations. This can be used by the operation to add/delete itself. The transaction function has a hook with*sql.Tx
rather thandb.ClusterTx
so that we don't import any database files.