diff --git a/compose/types/module_field.go b/compose/types/module_field.go index 0e0c1faa3..e13428a02 100644 --- a/compose/types/module_field.go +++ b/compose/types/module_field.go @@ -191,7 +191,13 @@ func (m ModuleField) setOptionKey(v interface{}, kk ...string) { if !ok { opt = map[string]interface{}{k: make(map[string]interface{})} } - aux := opt[k].(map[string]interface{}) + var aux ModuleFieldOptions + switch c := opt[k].(type) { + case map[string]interface{}: + aux = ModuleFieldOptions(c) + case ModuleFieldOptions: + aux = c + } opt = aux } @@ -208,7 +214,14 @@ func (m ModuleField) getOptionKey(kk ...string) interface{} { if !ok { opt = map[string]interface{}{k: make(map[string]interface{})} } - aux := opt[k].(map[string]interface{}) + + var aux ModuleFieldOptions + switch c := opt[k].(type) { + case map[string]interface{}: + aux = ModuleFieldOptions(c) + case ModuleFieldOptions: + aux = c + } opt = aux } diff --git a/pkg/envoy/resource/application.go b/pkg/envoy/resource/application.go index 46c4bd567..8913e41dd 100644 --- a/pkg/envoy/resource/application.go +++ b/pkg/envoy/resource/application.go @@ -31,8 +31,6 @@ func NewApplication(res *types.Application) *Application { }) } - res.ID = 0 - return r } diff --git a/pkg/envoy/resource/automation_workflow.go b/pkg/envoy/resource/automation_workflow.go index f9cc3a868..6a8243f31 100644 --- a/pkg/envoy/resource/automation_workflow.go +++ b/pkg/envoy/resource/automation_workflow.go @@ -51,8 +51,6 @@ func NewAutomationWorkflow(res *types.Workflow) *AutomationWorkflow { us.RunAs = MakeUserstampFromID(res.RunAs) r.SetUserstamps(us) - res.ID = 0 - return r } diff --git a/pkg/envoy/resource/compose_chart.go b/pkg/envoy/resource/compose_chart.go index f844b152f..1b9a936f0 100644 --- a/pkg/envoy/resource/compose_chart.go +++ b/pkg/envoy/resource/compose_chart.go @@ -37,9 +37,6 @@ func NewComposeChart(res *types.Chart, nsRef string, mmRef []string) *ComposeCha // Initial timestamps r.SetTimestamps(MakeTimestampsCUDA(&res.CreatedAt, res.UpdatedAt, res.DeletedAt, nil)) - res.ID = 0 - res.NamespaceID = 0 - return r } diff --git a/pkg/envoy/resource/compose_module.go b/pkg/envoy/resource/compose_module.go index f59353b0e..da1a29e2b 100644 --- a/pkg/envoy/resource/compose_module.go +++ b/pkg/envoy/resource/compose_module.go @@ -68,18 +68,11 @@ func NewComposeModule(res *types.Module, nsRef string) *ComposeModule { r.RefRoles = append(r.RefRoles, r.AddRef(systemTypes.RoleResourceType, refRole)) } } - - f.ID = 0 - f.NamespaceID = 0 - f.ModuleID = 0 } // Initial timestamps r.SetTimestamps(MakeTimestampsCUDA(&res.CreatedAt, res.UpdatedAt, res.DeletedAt, nil)) - res.ID = 0 - res.NamespaceID = 0 - return r } @@ -231,10 +224,6 @@ func NewComposeModuleField(res *types.ModuleField, nsRef, modRef string) *Compos // Initial timestamps r.SetTimestamps(MakeTimestampsCUDA(&res.CreatedAt, res.UpdatedAt, res.DeletedAt, nil)) - res.ID = 0 - res.NamespaceID = 0 - res.ModuleID = 0 - return r } diff --git a/pkg/envoy/resource/compose_namespace.go b/pkg/envoy/resource/compose_namespace.go index ba698652a..b1e79ccb7 100644 --- a/pkg/envoy/resource/compose_namespace.go +++ b/pkg/envoy/resource/compose_namespace.go @@ -24,8 +24,6 @@ func NewComposeNamespace(ns *types.Namespace) *ComposeNamespace { // Initial timestamps r.SetTimestamps(MakeTimestampsCUDA(&ns.CreatedAt, ns.UpdatedAt, ns.DeletedAt, nil)) - ns.ID = 0 - return r } diff --git a/pkg/envoy/resource/compose_page.go b/pkg/envoy/resource/compose_page.go index 8dc3bfdf1..900f23e48 100644 --- a/pkg/envoy/resource/compose_page.go +++ b/pkg/envoy/resource/compose_page.go @@ -126,11 +126,6 @@ func NewComposePage(pg *types.Page, nsRef, modRef, parentRef string) *ComposePag // Initial timestamps r.SetTimestamps(MakeTimestampsCUDA(&pg.CreatedAt, pg.UpdatedAt, pg.DeletedAt, nil)) - pg.ID = 0 - pg.SelfID = 0 - pg.NamespaceID = 0 - pg.ModuleID = 0 - return r } diff --git a/pkg/envoy/resource/resource.go b/pkg/envoy/resource/resource.go index 543f321b3..83c744fad 100644 --- a/pkg/envoy/resource/resource.go +++ b/pkg/envoy/resource/resource.go @@ -221,10 +221,6 @@ func (t *base) Placeholder() bool { return t.ph } -func MakeRef(rt string, ii Identifiers) *Ref { - return &Ref{ResourceType: rt, Identifiers: ii} -} - func IgnoreDepResolution(ref *Ref) bool { return ref.ResourceType == composeTypes.ModuleFieldResourceType } diff --git a/pkg/envoy/resource/resource_translation.go b/pkg/envoy/resource/resource_translation.go index 6b62b1622..e06721ca2 100644 --- a/pkg/envoy/resource/resource_translation.go +++ b/pkg/envoy/resource/resource_translation.go @@ -40,6 +40,23 @@ func NewResourceTranslation(res types.ResourceTranslationSet, refResource string return r } +func (r *ResourceTranslation) ReRef(old RefSet, new RefSet) { + r.base.ReRef(old, new) + + for i, o := range old { + if o.equals(r.RefRes) { + r.RefRes = new[i] + break + } + } + + for i, o := range old { + if RefSet(r.RefPath).findRef(o) > -1 { + r.RefPath = RefSet(r.RefPath).replaceRef(o, new[i]) + } + } +} + func (l *ResourceTranslation) MarkDefault() { l.Priority = 1 } diff --git a/pkg/envoy/resource/role.go b/pkg/envoy/resource/role.go index b0e2ae430..0497ee48d 100644 --- a/pkg/envoy/resource/role.go +++ b/pkg/envoy/resource/role.go @@ -25,8 +25,6 @@ func NewRole(rl *types.Role) *Role { // Initial timestamps r.SetTimestamps(MakeTimestampsCUDA(&rl.CreatedAt, rl.UpdatedAt, rl.DeletedAt, rl.ArchivedAt)) - rl.ID = 0 - return r } diff --git a/pkg/envoy/resource/template.go b/pkg/envoy/resource/template.go index 599cff7a3..351b36774 100644 --- a/pkg/envoy/resource/template.go +++ b/pkg/envoy/resource/template.go @@ -25,8 +25,6 @@ func NewTemplate(t *types.Template) *Template { // Initial timestamps r.SetTimestamps(MakeTimestampsCUDAS(&t.CreatedAt, t.UpdatedAt, t.DeletedAt, nil, nil)) - t.ID = 0 - return r } diff --git a/pkg/envoy/resource/user.go b/pkg/envoy/resource/user.go index 901bbfcba..c0fc1dac8 100644 --- a/pkg/envoy/resource/user.go +++ b/pkg/envoy/resource/user.go @@ -25,8 +25,6 @@ func NewUser(u *types.User) *User { // Initial timestamps r.SetTimestamps(MakeTimestampsCUDAS(&u.CreatedAt, u.UpdatedAt, u.DeletedAt, nil, u.SuspendedAt)) - u.ID = 0 - return r } diff --git a/pkg/envoy/store/api_gateway_marshal.go b/pkg/envoy/store/api_gateway_marshal.go index 264d6395e..72891073f 100644 --- a/pkg/envoy/store/api_gateway_marshal.go +++ b/pkg/envoy/store/api_gateway_marshal.go @@ -26,6 +26,8 @@ func (n *apiGateway) Prepare(ctx context.Context, pl *payload) (err error) { } func (n *apiGateway) prepareRoute(ctx context.Context, pl *payload) (err error) { + // Reset old identifiers + n.res.Res.ID = 0 // Try to get the original workflow n.gwr, err = findAPIGatewayStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) @@ -44,6 +46,11 @@ func (n *apiGateway) prepareFilters(ctx context.Context, pl *payload) (err error return nil } + // Reset old identifiers + for _, rf := range n.res.Filters { + rf.Res.ID = 0 + } + // Try to find any related filters for this route tt, _, err := store.SearchApigwFilters(ctx, pl.s, types.ApigwFilterFilter{ RouteID: n.gwr.ID, diff --git a/pkg/envoy/store/application_marshal.go b/pkg/envoy/store/application_marshal.go index d798da6df..cee55d0ec 100644 --- a/pkg/envoy/store/application_marshal.go +++ b/pkg/envoy/store/application_marshal.go @@ -16,11 +16,6 @@ func NewApplicationFromResource(res *resource.Application, cfg *EncoderConfig) r } func (n *application) Prepare(ctx context.Context, pl *payload) (err error) { - if n.cfg.IgnoreStore { - n.res.Res.ID = 0 - return nil - } - // Get the existing app n.app, err = findApplicationStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) if err != nil { @@ -30,6 +25,7 @@ func (n *application) Prepare(ctx context.Context, pl *payload) (err error) { if n.app != nil { n.res.Res.ID = n.app.ID } + return nil } diff --git a/pkg/envoy/store/automation_workflow_marshal.go b/pkg/envoy/store/automation_workflow_marshal.go index 52895da62..d525e3b61 100644 --- a/pkg/envoy/store/automation_workflow_marshal.go +++ b/pkg/envoy/store/automation_workflow_marshal.go @@ -27,10 +27,8 @@ func (n *automationWorkflow) Prepare(ctx context.Context, pl *payload) (err erro } func (n *automationWorkflow) prepareWorkflows(ctx context.Context, pl *payload) (err error) { - if n.cfg.IgnoreStore { - n.res.Res.ID = 0 - return nil - } + // Reset old identifiers + n.res.Res.ID = 0 // Try to get the original workflow n.wf, err = findAutomationWorkflowStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) @@ -49,11 +47,10 @@ func (n *automationWorkflow) prepareTriggers(ctx context.Context, pl *payload) ( return nil } - if n.cfg.IgnoreStore { - for _, t := range n.tt { - t.ID = 0 - } - return nil + // Reset old identifiers + for _, t := range n.res.Triggers { + t.Res.ID = 0 + t.Res.WorkflowID = 0 } // Try to find any related triggers for this workflow diff --git a/pkg/envoy/store/compose_chart_marshal.go b/pkg/envoy/store/compose_chart_marshal.go index a415a1d5f..f842a8835 100644 --- a/pkg/envoy/store/compose_chart_marshal.go +++ b/pkg/envoy/store/compose_chart_marshal.go @@ -17,15 +17,14 @@ func newComposeChartFromResource(res *resource.ComposeChart, cfg *EncoderConfig) } func (n *composeChart) Prepare(ctx context.Context, pl *payload) (err error) { + // Reset old identifiers + n.res.Res.ID = 0 + n.res.Res.NamespaceID = 0 + // Get related namespace - if !n.cfg.IgnoreStore { - n.relNS, err = findComposeNamespace(ctx, pl.s, pl.state.ParentResources, n.res.RefNs.Identifiers) - if err != nil { - return err - } - } else { - n.res.Res.ID = 0 - n.relNS = resource.FindComposeNamespace(pl.state.ParentResources, n.res.RefNs.Identifiers) + n.relNS, err = findComposeNamespace(ctx, pl.s, pl.state.ParentResources, n.res.RefNs.Identifiers) + if err != nil { + return err } if n.relNS == nil { return resource.ComposeNamespaceErrUnresolved(n.res.RefNs.Identifiers) @@ -34,23 +33,15 @@ func (n *composeChart) Prepare(ctx context.Context, pl *payload) (err error) { // Get related modules n.relMods = make(types.ModuleSet, len(n.res.RefMods)) for i, rMod := range n.res.RefMods { - if !n.cfg.IgnoreStore { - n.relMods[i], err = findComposeModule(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, rMod.Identifiers) - if err != nil { - return err - } - } else { - n.relMods[i] = resource.FindComposeModule(pl.state.ParentResources, rMod.Identifiers) + n.relMods[i], err = findComposeModule(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, rMod.Identifiers) + if err != nil { + return err } if n.relMods[i] == nil { return resource.ComposeModuleErrUnresolved(rMod.Identifiers) } } - if n.cfg.IgnoreStore { - return nil - } - // Try to get the original chart n.chr, err = findComposeChartStore(ctx, pl.s, n.relNS.ID, makeGenericFilter(n.res.Identifiers())) if err != nil { diff --git a/pkg/envoy/store/compose_module_marshal.go b/pkg/envoy/store/compose_module_marshal.go index 67f9e453e..2d7277b53 100644 --- a/pkg/envoy/store/compose_module_marshal.go +++ b/pkg/envoy/store/compose_module_marshal.go @@ -22,15 +22,19 @@ func NewComposeModuleFromResource(res *resource.ComposeModule, cfg *EncoderConfi } func (n *composeModule) Prepare(ctx context.Context, pl *payload) (err error) { + // Reset old identifiers + n.res.Res.ID = 0 + n.res.Res.NamespaceID = 0 + for _, rf := range n.res.ResFields { + rf.Res.ID = 0 + rf.Res.ModuleID = 0 + rf.Res.NamespaceID = 0 + } + // Get related namespace - if !n.cfg.IgnoreStore { - n.relNS, err = findComposeNamespace(ctx, pl.s, pl.state.ParentResources, n.res.RefNs.Identifiers) - if err != nil { - return err - } - } else { - n.res.Res.ID = 0 - n.relNS = resource.FindComposeNamespace(pl.state.ParentResources, n.res.RefNs.Identifiers) + n.relNS, err = findComposeNamespace(ctx, pl.s, pl.state.ParentResources, n.res.RefNs.Identifiers) + if err != nil { + return err } if n.relNS == nil { return resource.ComposeNamespaceErrUnresolved(n.res.RefNs.Identifiers) @@ -41,7 +45,7 @@ func (n *composeModule) Prepare(ctx context.Context, pl *payload) (err error) { // Get related record field modules for _, refMod := range n.res.RefMods { var mod *types.Module - if !n.cfg.IgnoreStore && n.relNS.ID > 0 { + if n.relNS.ID > 0 { mod, err = findComposeModuleStore(ctx, pl.s, n.relNS.ID, makeGenericFilter(refMod.Identifiers)) if err != nil { return err @@ -79,7 +83,7 @@ func (n *composeModule) Prepare(ctx context.Context, pl *payload) (err error) { } // Can't do anything else, since the NS doesn't yet exist - if n.cfg.IgnoreStore || n.relNS.ID <= 0 { + if n.relNS.ID <= 0 { return nil } diff --git a/pkg/envoy/store/compose_namespace_marshal.go b/pkg/envoy/store/compose_namespace_marshal.go index 5186ad349..2e64bd7fb 100644 --- a/pkg/envoy/store/compose_namespace_marshal.go +++ b/pkg/envoy/store/compose_namespace_marshal.go @@ -16,14 +16,13 @@ func newComposeNamespaceFromResource(res *resource.ComposeNamespace, cfg *Encode } func (n *composeNamespace) Prepare(ctx context.Context, pl *payload) (err error) { - if !n.cfg.IgnoreStore { - // Try to get the original namespace - n.ns, err = findComposeNamespaceStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) - if err != nil { - return err - } - } else { - n.res.Res.ID = 0 + // Reset old identifiers + n.res.Res.ID = 0 + + // Try to get the original namespace + n.ns, err = findComposeNamespaceStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) + if err != nil { + return err } if n.ns != nil { diff --git a/pkg/envoy/store/compose_page_marshal.go b/pkg/envoy/store/compose_page_marshal.go index f2bfa0b80..1c932e62a 100644 --- a/pkg/envoy/store/compose_page_marshal.go +++ b/pkg/envoy/store/compose_page_marshal.go @@ -23,15 +23,16 @@ func newComposePageFromResource(res *resource.ComposePage, cfg *EncoderConfig) r } func (n *composePage) Prepare(ctx context.Context, pl *payload) (err error) { + // Reset old identifiers + n.res.Res.ID = 0 + n.res.Res.SelfID = 0 + n.res.Res.NamespaceID = 0 + n.res.Res.ModuleID = 0 + // Get related namespace - if !n.cfg.IgnoreStore { - n.relNS, err = findComposeNamespace(ctx, pl.s, pl.state.ParentResources, n.res.RefNs.Identifiers) - if err != nil { - return err - } - } else { - n.res.Res.ID = 0 - n.relNS = resource.FindComposeNamespace(pl.state.ParentResources, n.res.RefNs.Identifiers) + n.relNS, err = findComposeNamespace(ctx, pl.s, pl.state.ParentResources, n.res.RefNs.Identifiers) + if err != nil { + return err } if n.relNS == nil { return resource.ComposeNamespaceErrUnresolved(n.res.RefNs.Identifiers) @@ -40,13 +41,9 @@ func (n *composePage) Prepare(ctx context.Context, pl *payload) (err error) { // Get related module // If this isn't a record page, there is no related module if n.res.RefMod != nil { - if !n.cfg.IgnoreStore { - n.relMod, err = findComposeModule(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, n.res.RefMod.Identifiers) - if err != nil { - return err - } - } else { - n.relMod = resource.FindComposeModule(pl.state.ParentResources, n.res.RefMod.Identifiers) + n.relMod, err = findComposeModule(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, n.res.RefMod.Identifiers) + if err != nil { + return err } if n.relMod == nil { return resource.ComposeModuleErrUnresolved(n.res.RefMod.Identifiers) @@ -55,13 +52,9 @@ func (n *composePage) Prepare(ctx context.Context, pl *payload) (err error) { // Get parent page if n.res.RefParent != nil { - if !n.cfg.IgnoreStore { - n.relParent, err = findComposePage(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, n.res.RefParent.Identifiers) - if err != nil { - return err - } - } else { - n.relParent = resource.FindComposePage(pl.state.ParentResources, n.res.RefParent.Identifiers) + n.relParent, err = findComposePage(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, n.res.RefParent.Identifiers) + if err != nil { + return err } if n.relParent == nil { return resource.ComposePageErrUnresolved(n.res.RefParent.Identifiers) @@ -69,15 +62,10 @@ func (n *composePage) Prepare(ctx context.Context, pl *payload) (err error) { } // Get related workflows - var wf *atypes.Workflow for _, wfr := range n.res.WfRefs { - if !n.cfg.IgnoreStore { - wf, err = findAutomationWorkflow(ctx, pl.s, pl.state.ParentResources, wfr.Identifiers) - if err != nil { - return err - } - } else { - wf = resource.FindAutomationWorkflow(pl.state.ParentResources, wfr.Identifiers) + wf, err := findAutomationWorkflow(ctx, pl.s, pl.state.ParentResources, wfr.Identifiers) + if err != nil { + return err } if wf == nil { return resource.AutomationWorkflowErrUnresolved(wfr.Identifiers) @@ -88,15 +76,10 @@ func (n *composePage) Prepare(ctx context.Context, pl *payload) (err error) { } // Get other related modules - var mod *types.Module for _, mr := range n.res.ModRefs { - if !n.cfg.IgnoreStore { - mod, err = findComposeModule(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, mr.Identifiers) - if err != nil { - return err - } - } else { - mod = resource.FindComposeModule(pl.state.ParentResources, mr.Identifiers) + mod, err := findComposeModule(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, mr.Identifiers) + if err != nil { + return err } if mod == nil { return resource.ComposeModuleErrUnresolved(mr.Identifiers) @@ -107,15 +90,10 @@ func (n *composePage) Prepare(ctx context.Context, pl *payload) (err error) { } // Get related charts - var chr *types.Chart for _, refChart := range n.res.RefCharts { - if !n.cfg.IgnoreStore { - chr, err = findComposeChart(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, refChart.Identifiers) - if err != nil { - return err - } - } else { - chr = resource.FindComposeChart(pl.state.ParentResources, refChart.Identifiers) + chr, err := findComposeChart(ctx, pl.s, n.relNS.ID, pl.state.ParentResources, refChart.Identifiers) + if err != nil { + return err } if chr == nil { return resource.ComposeChartErrUnresolved(refChart.Identifiers) @@ -125,10 +103,6 @@ func (n *composePage) Prepare(ctx context.Context, pl *payload) (err error) { } } - if n.cfg.IgnoreStore { - return nil - } - // Try to get the original page n.pg, err = findComposePageStore(ctx, pl.s, n.relNS.ID, makeGenericFilter(n.res.Identifiers())) if err != nil { diff --git a/pkg/envoy/store/compose_record_marshal.go b/pkg/envoy/store/compose_record_marshal.go index 633c06753..7568e6b0c 100644 --- a/pkg/envoy/store/compose_record_marshal.go +++ b/pkg/envoy/store/compose_record_marshal.go @@ -33,11 +33,6 @@ func NewComposeRecordFromResource(res *resource.ComposeRecord, cfg *EncoderConfi } func (n *composeRecord) Prepare(ctx context.Context, pl *payload) (err error) { - // @todo add this - if n.cfg.IgnoreStore { - return fmt.Errorf("IgnoreStore not supported for compose records") - } - // Get related namespace n.relNS, err = findComposeNamespace(ctx, pl.s, pl.state.ParentResources, n.res.RefNs.Identifiers) if err != nil { diff --git a/pkg/envoy/store/encoder.go b/pkg/envoy/store/encoder.go index a85f22022..344c41249 100644 --- a/pkg/envoy/store/encoder.go +++ b/pkg/envoy/store/encoder.go @@ -38,9 +38,6 @@ type ( // If you return an error, the encoding will terminate. // If you return nil (ignore the error), the encoding will continue. DeferNok func(error) error - - // IgnoreStore prevents encoders from accessing the store for initial resources - IgnoreStore bool } accessControlRBACServicer interface { diff --git a/pkg/envoy/store/report_marshal.go b/pkg/envoy/store/report_marshal.go index 257653f8f..43bf56e5d 100644 --- a/pkg/envoy/store/report_marshal.go +++ b/pkg/envoy/store/report_marshal.go @@ -17,6 +17,9 @@ func newReportFromResource(res *resource.Report, cfg *EncoderConfig) resourceSta } func (n *report) Prepare(ctx context.Context, pl *payload) (err error) { + // Reset old identifiers + n.res.Res.ID = 0 + // Try to get the original report n.rp, err = findReportStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) if err != nil { diff --git a/pkg/envoy/store/role_marshal.go b/pkg/envoy/store/role_marshal.go index 9c06216ad..ad4794d99 100644 --- a/pkg/envoy/store/role_marshal.go +++ b/pkg/envoy/store/role_marshal.go @@ -16,10 +16,8 @@ func NewRoleFromResource(res *resource.Role, cfg *EncoderConfig) resourceState { } func (n *role) Prepare(ctx context.Context, pl *payload) (err error) { - if n.cfg.IgnoreStore { - n.res.Res.ID = 0 - return nil - } + // Reset old identifiers + n.res.Res.ID = 0 n.rl, err = findRoleStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) if err != nil { diff --git a/pkg/envoy/store/template_marshal.go b/pkg/envoy/store/template_marshal.go index 1e98f9592..c7bcf99e8 100644 --- a/pkg/envoy/store/template_marshal.go +++ b/pkg/envoy/store/template_marshal.go @@ -16,10 +16,8 @@ func NewTemplateFromResource(res *resource.Template, cfg *EncoderConfig) resourc } func (n *template) Prepare(ctx context.Context, pl *payload) (err error) { - if n.cfg.IgnoreStore { - n.res.Res.ID = 0 - return nil - } + // Reset old identifiers + n.res.Res.ID = 0 // Try to get the original template n.t, err = findTemplateStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) diff --git a/pkg/envoy/store/user_marshal.go b/pkg/envoy/store/user_marshal.go index e30fc7c1f..f1a72fb20 100644 --- a/pkg/envoy/store/user_marshal.go +++ b/pkg/envoy/store/user_marshal.go @@ -16,10 +16,8 @@ func NewUserFromResource(res *resource.User, cfg *EncoderConfig) resourceState { } func (n *user) Prepare(ctx context.Context, pl *payload) (err error) { - if n.cfg.IgnoreStore { - n.res.Res.ID = 0 - return nil - } + // Reset old identifiers + n.res.Res.ID = 0 // Try to get the original user n.u, err = findUserStore(ctx, pl.s, makeGenericFilter(n.res.Identifiers())) diff --git a/pkg/envoy/store/util.go b/pkg/envoy/store/util.go index 75b5f044f..1552cc42f 100644 --- a/pkg/envoy/store/util.go +++ b/pkg/envoy/store/util.go @@ -141,9 +141,6 @@ func mergeConfig(ec *EncoderConfig, rs *resource.EnvoyConfig) *EncoderConfig { rr := &EncoderConfig{ OnExisting: rs.OnExisting, SkipIf: rs.SkipIf, - - // IgnoreStore is an encoder thing and should not be controlled from a resource - IgnoreStore: ec.IgnoreStore, } // Default to store config diff --git a/pkg/envoy/yaml/compose_page_marshal.go b/pkg/envoy/yaml/compose_page_marshal.go index c7fcc6acf..2e79d0d32 100644 --- a/pkg/envoy/yaml/compose_page_marshal.go +++ b/pkg/envoy/yaml/compose_page_marshal.go @@ -142,6 +142,7 @@ func (p *composePage) MarshalYAML() (interface{}, error) { } nn, err = addMap(nn, + "pageID", p.res.ID, "handle", p.res.Handle, "title", p.res.Title, "description", p.res.Description, diff --git a/pkg/envoy/yaml/compose_page_unmarshal.go b/pkg/envoy/yaml/compose_page_unmarshal.go index 51d4fcde9..f0ce9408a 100644 --- a/pkg/envoy/yaml/compose_page_unmarshal.go +++ b/pkg/envoy/yaml/compose_page_unmarshal.go @@ -2,6 +2,7 @@ package yaml import ( "fmt" + "strings" "github.com/cortezaproject/corteza-server/compose/types" "github.com/cortezaproject/corteza-server/pkg/envoy" @@ -71,7 +72,10 @@ func (wrap *composePage) UnmarshalYAML(n *yaml.Node) (err error) { } return y7s.EachMap(n, func(k, v *yaml.Node) (err error) { - switch k.Value { + switch strings.ToLower(k.Value) { + case "id", "pageid": + return y7s.DecodeScalar(v, "page ID", &wrap.res.ID) + case "title": return y7s.DecodeScalar(v, "page title", &wrap.res.Title)