Post testing tweaks and fixes

This commit is contained in:
Tomaž Jerman
2023-10-26 17:09:58 +02:00
parent 7b5e8d1aa9
commit 6795e5e0f2
15 changed files with 1225 additions and 157 deletions
+2 -1
View File
@@ -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) {
+31 -17
View File
@@ -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
}
+11 -5
View File
@@ -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()