Move seeder commands to sys & cmp components
This commit is contained in:
@@ -3,6 +3,8 @@ package app
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
composeCommands "github.com/cortezaproject/corteza/server/compose/commands"
|
||||
"github.com/cortezaproject/corteza/server/pkg/seeder"
|
||||
"sync"
|
||||
|
||||
authCommands "github.com/cortezaproject/corteza/server/auth/commands"
|
||||
@@ -11,7 +13,6 @@ import (
|
||||
"github.com/cortezaproject/corteza/server/pkg/api/server"
|
||||
"github.com/cortezaproject/corteza/server/pkg/cli"
|
||||
"github.com/cortezaproject/corteza/server/pkg/options"
|
||||
fakerCommands "github.com/cortezaproject/corteza/server/pkg/seeder/commands"
|
||||
"github.com/cortezaproject/corteza/server/store"
|
||||
systemCommands "github.com/cortezaproject/corteza/server/system/commands"
|
||||
"go.uber.org/zap"
|
||||
@@ -132,7 +133,10 @@ func (app *CortezaApp) InitCLI() {
|
||||
federationCommands.Sync(ctx, app),
|
||||
cli.EnvCommand(),
|
||||
cli.VersionCommand(),
|
||||
fakerCommands.Seeder(ctx, app),
|
||||
seeder.BaseCommand(
|
||||
systemCommands.SeedUsers(ctx, app),
|
||||
composeCommands.SeedRecords(ctx, app),
|
||||
),
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
96
server/compose/commands/seeder.go
Normal file
96
server/compose/commands/seeder.go
Normal file
@@ -0,0 +1,96 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/cortezaproject/corteza/server/compose/service"
|
||||
"github.com/cortezaproject/corteza/server/compose/types"
|
||||
"github.com/cortezaproject/corteza/server/pkg/cli"
|
||||
"github.com/cortezaproject/corteza/server/pkg/dal"
|
||||
"github.com/cortezaproject/corteza/server/pkg/seeder"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
type (
|
||||
serviceInitializer interface {
|
||||
InitServices(ctx context.Context) error
|
||||
}
|
||||
|
||||
seederService interface {
|
||||
CreateUser(seeder.Params) ([]uint64, error)
|
||||
CreateRecord(seeder.RecordParams) ([]uint64, error)
|
||||
DeleteAllUser() error
|
||||
DeleteAllRecord(*types.Module) error
|
||||
DeleteAll(*seeder.RecordParams) (err error)
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
svc seederService
|
||||
)
|
||||
|
||||
func SeedRecords(ctx context.Context, app serviceInitializer) (cmd *cobra.Command) {
|
||||
var (
|
||||
namespaceID int
|
||||
moduleID int
|
||||
|
||||
params = seeder.RecordParams{}
|
||||
)
|
||||
cmd = &cobra.Command{
|
||||
Use: "records",
|
||||
Short: "Seed records",
|
||||
|
||||
PersistentPreRunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||
if err = app.InitServices(cli.Context()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.Println("compose:PersistentPreRunE")
|
||||
if err = service.Activate(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
svc = seeder.Seeder(ctx, seeder.DefaultStore, dal.Service(), seeder.Faker())
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
cmd.AddCommand(
|
||||
&cobra.Command{
|
||||
Use: "create",
|
||||
Short: "Create users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
params.NamespaceID = uint64(namespaceID)
|
||||
params.ModuleID = uint64(moduleID)
|
||||
|
||||
userIDs, err := svc.CreateRecord(params)
|
||||
cli.HandleError(err)
|
||||
|
||||
cmd.Printf(" Created %d records", len(userIDs))
|
||||
cmd.Println()
|
||||
},
|
||||
},
|
||||
&cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "Delete records",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
cli.HandleError(svc.DeleteAllRecord(&types.Module{}))
|
||||
|
||||
cmd.Println(" Deleted all records")
|
||||
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
cmdCreate := cmd.Commands()[0]
|
||||
cmdCreate.Flags().IntVarP(¶ms.Limit, "limit", "l", 1, "How many records to be created")
|
||||
// @todo: Can be improved by adding one flag which accept string(handle) or id(int) for namespace and module
|
||||
cmdCreate.Flags().IntVarP(&namespaceID, "namespace-id", "n", 0, "namespace id for recode creation")
|
||||
cmdCreate.Flags().StringVarP(¶ms.NamespaceHandle, "namespace-handle", "a", "", "namespace handle for recode creation")
|
||||
cmdCreate.Flags().IntVarP(&moduleID, "module-id", "m", 0, "module id for recode creation")
|
||||
cmdCreate.Flags().StringVarP(¶ms.ModuleHandle, "module-handle", "b", "", "module handle for recode creation")
|
||||
|
||||
return cmd
|
||||
}
|
||||
19
server/pkg/seeder/command.go
Normal file
19
server/pkg/seeder/command.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package seeder
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
// BaseCommand returns a base command for seeder
|
||||
//
|
||||
// Used by app init procedure
|
||||
func BaseCommand(sub ...*cobra.Command) *cobra.Command {
|
||||
cmd := &cobra.Command{
|
||||
Use: "seeder",
|
||||
Short: "Seeds fake data",
|
||||
Long: "Generates fake data for user and records",
|
||||
}
|
||||
|
||||
cmd.AddCommand(sub...)
|
||||
return cmd
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"context"
|
||||
cService "github.com/cortezaproject/corteza/server/compose/service"
|
||||
cTypes "github.com/cortezaproject/corteza/server/compose/types"
|
||||
"github.com/cortezaproject/corteza/server/pkg/cli"
|
||||
"github.com/cortezaproject/corteza/server/pkg/dal"
|
||||
"github.com/cortezaproject/corteza/server/pkg/seeder"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
type (
|
||||
serviceInitializer interface {
|
||||
InitServices(ctx context.Context) error
|
||||
}
|
||||
|
||||
seederService interface {
|
||||
CreateUser(seeder.Params) ([]uint64, error)
|
||||
CreateRecord(seeder.RecordParams) ([]uint64, error)
|
||||
DeleteAllUser() error
|
||||
DeleteAllRecord(*cTypes.Module) error
|
||||
DeleteAll(*seeder.RecordParams) (err error)
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
svc seederService
|
||||
)
|
||||
|
||||
func Seeder(ctx context.Context, app serviceInitializer) *cobra.Command {
|
||||
cmd := &cobra.Command{
|
||||
Use: "seeder",
|
||||
Short: "Seeds fake data",
|
||||
Long: "Generates fake data for user and records",
|
||||
|
||||
PersistentPreRunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||
if err = app.InitServices(cli.Context()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = cService.Activate(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
svc = seeder.Seeder(ctx, seeder.DefaultStore, dal.Service(), seeder.Faker())
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
// @todo improve cli command with sub-command
|
||||
cmd.AddCommand(
|
||||
cmdUsers(),
|
||||
cmdRecords(),
|
||||
cmdDelete(),
|
||||
)
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
func cmdUsers() (cmd *cobra.Command) {
|
||||
var (
|
||||
limit int
|
||||
)
|
||||
cmd = &cobra.Command{
|
||||
Use: "users",
|
||||
Short: "Seed users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
}
|
||||
|
||||
cmd.AddCommand(
|
||||
&cobra.Command{
|
||||
Use: "create",
|
||||
Short: "Create users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
userIDs, err := svc.CreateUser(seeder.Params{Limit: limit})
|
||||
cli.HandleError(err)
|
||||
|
||||
cmd.Printf(" Created %d users", len(userIDs))
|
||||
cmd.Println()
|
||||
},
|
||||
},
|
||||
&cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "Delete users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
cli.HandleError(svc.DeleteAllUser())
|
||||
|
||||
cmd.Println(" Deleted all users")
|
||||
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
cmdCreate := cmd.Commands()[0]
|
||||
cmdCreate.Flags().IntVarP(&limit, "limit", "l", 1, "How many users to be created")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
func cmdRecords() (cmd *cobra.Command) {
|
||||
var (
|
||||
namespaceID int
|
||||
moduleID int
|
||||
|
||||
params = seeder.RecordParams{}
|
||||
)
|
||||
cmd = &cobra.Command{
|
||||
Use: "records",
|
||||
Short: "Seed records",
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
ValidArgs: []string{"create", "delete"},
|
||||
}
|
||||
|
||||
cmd.AddCommand(
|
||||
&cobra.Command{
|
||||
Use: "create",
|
||||
Short: "Create records",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
params.NamespaceID = uint64(namespaceID)
|
||||
params.ModuleID = uint64(moduleID)
|
||||
|
||||
userIDs, err := svc.CreateRecord(params)
|
||||
cli.HandleError(err)
|
||||
|
||||
cmd.Printf(" Created %d records", len(userIDs))
|
||||
cmd.Println()
|
||||
},
|
||||
},
|
||||
&cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "Delete records",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
cli.HandleError(svc.DeleteAllRecord(&cTypes.Module{}))
|
||||
|
||||
cmd.Println(" Deleted all records")
|
||||
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
cmdCreate := cmd.Commands()[0]
|
||||
cmdCreate.Flags().IntVarP(¶ms.Limit, "limit", "l", 1, "How many records to be created")
|
||||
// @todo: Can be improved by adding one flag which accept string(handle) or id(int) for namespace and module
|
||||
cmdCreate.Flags().IntVarP(&namespaceID, "namespace-id", "n", 0, "namespace id for recode creation")
|
||||
cmdCreate.Flags().StringVarP(¶ms.NamespaceHandle, "namespace-handle", "a", "", "namespace handle for recode creation")
|
||||
cmdCreate.Flags().IntVarP(&moduleID, "module-id", "m", 0, "module id for recode creation")
|
||||
cmdCreate.Flags().StringVarP(¶ms.ModuleHandle, "module-handle", "b", "", "module handle for recode creation")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
func cmdDelete() (cmd *cobra.Command) {
|
||||
var (
|
||||
namespaceID int
|
||||
moduleID int
|
||||
|
||||
params = seeder.RecordParams{}
|
||||
)
|
||||
cmd = &cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "delete all seeded data",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
params.NamespaceID = uint64(namespaceID)
|
||||
params.ModuleID = uint64(moduleID)
|
||||
|
||||
cli.HandleError(svc.DeleteAll(¶ms))
|
||||
|
||||
cmd.Println(" Deleted all fake data")
|
||||
},
|
||||
}
|
||||
|
||||
cmd.Flags().IntVarP(¶ms.Limit, "limit", "l", 1, "How many users to be created")
|
||||
// @todo: Can be improved by adding one flag which accept string(handle) or id(int) for namespace and module
|
||||
cmd.Flags().IntVarP(&namespaceID, "namespace-id", "n", 0, "namespace id for recode creation")
|
||||
cmd.Flags().StringVarP(¶ms.NamespaceHandle, "namespace-handle", "a", "", "namespace handle for recode creation")
|
||||
cmd.Flags().IntVarP(&moduleID, "module-id", "m", 0, "module id for recode creation")
|
||||
cmd.Flags().StringVarP(¶ms.ModuleHandle, "module-handle", "b", "", "module handle for recode creation")
|
||||
|
||||
return cmd
|
||||
}
|
||||
72
server/system/commands/seeder.go
Normal file
72
server/system/commands/seeder.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/cortezaproject/corteza/server/pkg/cli"
|
||||
"github.com/cortezaproject/corteza/server/pkg/dal"
|
||||
"github.com/cortezaproject/corteza/server/pkg/seeder"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
type (
|
||||
seederService interface {
|
||||
CreateUser(seeder.Params) ([]uint64, error)
|
||||
CreateRecord(seeder.RecordParams) ([]uint64, error)
|
||||
DeleteAllUser() error
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
svc seederService
|
||||
)
|
||||
|
||||
func SeedUsers(ctx context.Context, app serviceInitializer) (cmd *cobra.Command) {
|
||||
var (
|
||||
limit int
|
||||
)
|
||||
cmd = &cobra.Command{
|
||||
Use: "users",
|
||||
Short: "Seed users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
|
||||
PersistentPreRunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||
if err = app.InitServices(cli.Context()); err != nil {
|
||||
return err
|
||||
}
|
||||
svc = seeder.Seeder(ctx, seeder.DefaultStore, dal.Service(), seeder.Faker())
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
cmd.AddCommand(
|
||||
&cobra.Command{
|
||||
Use: "create",
|
||||
Short: "Create users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
userIDs, err := svc.CreateUser(seeder.Params{Limit: limit})
|
||||
cli.HandleError(err)
|
||||
|
||||
cmd.Printf(" Created %d users", len(userIDs))
|
||||
cmd.Println()
|
||||
},
|
||||
},
|
||||
&cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "Delete users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
cli.HandleError(svc.DeleteAllUser())
|
||||
|
||||
cmd.Println(" Deleted all users")
|
||||
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
cmdCreate := cmd.Commands()[0]
|
||||
cmdCreate.Flags().IntVarP(&limit, "limit", "l", 1, "How many users to be created")
|
||||
|
||||
return cmd
|
||||
}
|
||||
Reference in New Issue
Block a user