Events Entity (#28)

* Generic Events

We can try to use these generic events for script execution and storing of the output logs in events with `log` kind.

* Lint issues

* Cleanup events upon VM deletion

* Basic integration test

* Run an actual VM in tests

* Apply suggestions from code review

Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>

* Use POST

* Make newEventKey private

* Append events in batches

* Lint issues

* Private `scopePrefix`

---------

Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>
This commit is contained in:
Fedor Korotkov
2023-03-13 08:04:17 -04:00
committed by GitHub
co-authored by Nikolay Edigaryev
parent 165662bb0a
commit 0582108ea6
12 changed files with 405 additions and 45 deletions
+34 -24
View File
@@ -26,17 +26,6 @@ func NewCommand() *cobra.Command {
}
func runDev(cmd *cobra.Command, args []string) error {
// Initialize the logger
logger, err := zap.NewDevelopment()
if err != nil {
return err
}
defer func() {
if syncErr := logger.Sync(); syncErr != nil && err == nil {
err = syncErr
}
}()
if !filepath.IsAbs(devDataDirPath) {
pwd, err := os.Getwd()
if err != nil {
@@ -45,18 +34,8 @@ func runDev(cmd *cobra.Command, args []string) error {
devDataDirPath = path.Join(pwd, devDataDirPath)
}
dataDir, err := controller.NewDataDir(devDataDirPath)
if err != nil {
return err
}
devController, devWorker, err := CreateDevControllerAndWorker(devDataDirPath)
controller, err := controller.New(controller.WithDataDir(dataDir),
controller.WithInsecureAuthDisabled(), controller.WithLogger(logger))
if err != nil {
return err
}
worker, err := worker.New(worker.WithDataDirPath(devDataDirPath), worker.WithLogger(logger))
if err != nil {
return err
}
@@ -64,16 +43,47 @@ func runDev(cmd *cobra.Command, args []string) error {
errChan := make(chan error, 2)
go func() {
if err := controller.Run(cmd.Context()); err != nil {
if err := devController.Run(cmd.Context()); err != nil {
errChan <- err
}
}()
go func() {
if err := worker.Run(cmd.Context()); err != nil {
if err := devWorker.Run(cmd.Context()); err != nil {
errChan <- err
}
}()
return <-errChan
}
func CreateDevControllerAndWorker(devDataDirPath string) (*controller.Controller, *worker.Worker, error) {
// Initialize the logger
logger, err := zap.NewDevelopment()
if err != nil {
return nil, nil, err
}
defer func() {
if syncErr := logger.Sync(); syncErr != nil && err == nil {
err = syncErr
}
}()
dataDir, err := controller.NewDataDir(devDataDirPath)
if err != nil {
return nil, nil, err
}
devController, err := controller.New(controller.WithDataDir(dataDir),
controller.WithInsecureAuthDisabled(), controller.WithLogger(logger))
if err != nil {
return nil, nil, err
}
devWorker, err := worker.New(worker.WithDataDirPath(devDataDirPath), worker.WithLogger(logger))
if err != nil {
return nil, nil, err
}
return devController, devWorker, nil
}