Post testing tweaks and fixes
This commit is contained in:
@@ -189,7 +189,8 @@ func (e StoreEncoder) encodeModuleExtend(ctx context.Context, p envoyx.EncodePar
|
||||
}
|
||||
|
||||
// @note there is only one model so this is ok
|
||||
return dl.ReplaceModel(ctx, models[0])
|
||||
_, err = dl.ReplaceModel(ctx, nil, models[0])
|
||||
return
|
||||
}
|
||||
|
||||
func (e StoreEncoder) postModulesEncode(ctx context.Context, p envoyx.EncodeParams, s store.Storer, tree envoyx.Traverser, nn envoyx.NodeSet) (err error) {
|
||||
|
||||
@@ -40,7 +40,8 @@ type (
|
||||
store store.Storer
|
||||
locale ResourceTranslationsManagerService
|
||||
|
||||
dal dalModelManager
|
||||
dal dalModelManager
|
||||
schemaAltManager schemaAltManager
|
||||
}
|
||||
|
||||
moduleAccessController interface {
|
||||
@@ -78,7 +79,7 @@ type (
|
||||
GetConnectionByID(ID uint64) *dal.ConnectionWrap
|
||||
Search(ctx context.Context, m dal.ModelRef, operations dal.OperationSet, f filter.Filter) (dal.Iterator, error)
|
||||
|
||||
ReplaceModel(context.Context, *dal.Model) error
|
||||
ReplaceModel(context.Context, []*dal.Alteration, *dal.Model) (newAlts []*dal.Alteration, err error)
|
||||
RemoveModel(ctx context.Context, connectionID, ID uint64) error
|
||||
SearchModelIssues(ID uint64) []dal.Issue
|
||||
}
|
||||
@@ -145,14 +146,15 @@ var (
|
||||
})
|
||||
)
|
||||
|
||||
func Module() *module {
|
||||
func Module(am schemaAltManager) *module {
|
||||
return &module{
|
||||
ac: DefaultAccessControl,
|
||||
eventbus: eventbus.Service(),
|
||||
actionlog: DefaultActionlog,
|
||||
store: DefaultStore,
|
||||
locale: DefaultResourceTranslation,
|
||||
dal: dal.Service(),
|
||||
ac: DefaultAccessControl,
|
||||
eventbus: eventbus.Service(),
|
||||
actionlog: DefaultActionlog,
|
||||
store: DefaultStore,
|
||||
locale: DefaultResourceTranslation,
|
||||
dal: dal.Service(),
|
||||
schemaAltManager: am,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -405,7 +407,7 @@ func (svc module) Create(ctx context.Context, new *types.Module) (*types.Module,
|
||||
return
|
||||
}
|
||||
|
||||
if err = DalModelReplace(ctx, svc.dal, ns, new); err != nil {
|
||||
if err = DalModelReplace(ctx, s, svc.schemaAltManager, svc.dal, ns, new); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -434,7 +436,7 @@ func (svc module) UndeleteByID(ctx context.Context, namespaceID, moduleID uint64
|
||||
//
|
||||
// Directly using store so we don't spam the action log
|
||||
func (svc *module) ReloadDALModels(ctx context.Context) (err error) {
|
||||
return DalModelReload(ctx, svc.store, svc.dal)
|
||||
return DalModelReload(ctx, svc.store, svc.schemaAltManager, svc.dal)
|
||||
}
|
||||
|
||||
// SearchSensitive will list all module with at least one private module field
|
||||
@@ -619,7 +621,7 @@ func (svc module) updater(ctx context.Context, namespaceID, moduleID uint64, act
|
||||
if err = svc.eventbus.WaitFor(ctx, event.ModuleAfterUpdate(m, old, ns)); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = DalModelReplace(ctx, svc.dal, ns, old, m); err != nil {
|
||||
if err = DalModelReplace(ctx, s, svc.schemaAltManager, svc.dal, ns, old, m); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
@@ -1092,7 +1094,7 @@ func loadModuleLabels(ctx context.Context, s store.Labels, set ...*types.Module)
|
||||
}
|
||||
|
||||
// DalModelReload reloads all defined compose modules into the DAL
|
||||
func DalModelReload(ctx context.Context, s store.Storer, dmm dalModelManager) (err error) {
|
||||
func DalModelReload(ctx context.Context, s store.Storer, am schemaAltManager, dmm dalModelManager) (err error) {
|
||||
// Get all available namespaces
|
||||
nn, _, err := store.SearchComposeNamespaces(ctx, s, types.NamespaceFilter{})
|
||||
if err != nil {
|
||||
@@ -1112,7 +1114,7 @@ func DalModelReload(ctx context.Context, s store.Storer, dmm dalModelManager) (e
|
||||
|
||||
// Reload!
|
||||
for _, ns := range nn {
|
||||
err = DalModelReplace(ctx, dmm, ns, modulesForNamespace(ns, mm)...)
|
||||
err = DalModelReplace(ctx, s, am, dmm, ns, modulesForNamespace(ns, mm)...)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1135,9 +1137,11 @@ func modulesForNamespace(ns *types.Namespace, mm types.ModuleSet) (out types.Mod
|
||||
}
|
||||
|
||||
// Replaces all given connections
|
||||
func DalModelReplace(ctx context.Context, dmm dalModelManager, ns *types.Namespace, modules ...*types.Module) (err error) {
|
||||
func DalModelReplace(ctx context.Context, s store.Storer, am schemaAltManager, dmm dalModelManager, ns *types.Namespace, modules ...*types.Module) (err error) {
|
||||
var (
|
||||
models dal.ModelSet
|
||||
models dal.ModelSet
|
||||
currentAlts []*dal.Alteration
|
||||
newAlts []*dal.Alteration
|
||||
)
|
||||
|
||||
models, err = ModulesToModelSet(dmm, ns, modules...)
|
||||
@@ -1146,7 +1150,17 @@ func DalModelReplace(ctx context.Context, dmm dalModelManager, ns *types.Namespa
|
||||
}
|
||||
|
||||
for _, m := range models {
|
||||
err = dmm.ReplaceModel(ctx, m)
|
||||
currentAlts, err = am.ModelAlterations(ctx, m)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
newAlts, err = dmm.ReplaceModel(ctx, currentAlts, m)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = am.SetAlterations(ctx, s, m, currentAlts, newAlts...)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -33,11 +33,17 @@ type (
|
||||
FindByID(context.Context, uint64) (*systemTypes.User, error)
|
||||
}
|
||||
|
||||
schemaAltManager interface {
|
||||
ModelAlterations(context.Context, *dal.Model) (out []*dal.Alteration, err error)
|
||||
SetAlterations(ctx context.Context, s store.Storer, m *dal.Model, stale []*dal.Alteration, set ...*dal.Alteration) (err error)
|
||||
}
|
||||
|
||||
Config struct {
|
||||
ActionLog options.ActionLogOpt
|
||||
Discovery options.DiscoveryOpt
|
||||
Storage options.ObjectStoreOpt
|
||||
UserFinder userFinder
|
||||
ActionLog options.ActionLogOpt
|
||||
Discovery options.DiscoveryOpt
|
||||
Storage options.ObjectStoreOpt
|
||||
UserFinder userFinder
|
||||
SchemaAltManager schemaAltManager
|
||||
}
|
||||
|
||||
eventDispatcher interface {
|
||||
@@ -176,7 +182,7 @@ func Initialize(ctx context.Context, log *zap.Logger, s store.Storer, c Config)
|
||||
}
|
||||
|
||||
DefaultNamespace = Namespace()
|
||||
DefaultModule = Module()
|
||||
DefaultModule = Module(c.SchemaAltManager)
|
||||
|
||||
DefaultImportSession = ImportSession()
|
||||
DefaultRecord = Record()
|
||||
|
||||
Reference in New Issue
Block a user