Fix namespace export error when resources reference deleted resources
This commit is contained in:
parent
0c3a5253b1
commit
dc54b55e55
31
server/automation/envoy/store_encode.gen.go
generated
31
server/automation/envoy/store_encode.gen.go
generated
@ -201,16 +201,9 @@ func (e StoreEncoder) encodeWorkflow(ctx context.Context, p envoyx.EncodeParams,
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -414,16 +407,9 @@ func (e StoreEncoder) encodeTrigger(ctx context.Context, p envoyx.EncodeParams,
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -560,3 +546,12 @@ func (e StoreEncoder) getScopeNodes(ctx context.Context, s store.Storer, nn envo
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func safeParentID(tt envoyx.Traverser, n *envoyx.Node, ref envoyx.Ref) (out uint64) {
|
||||
rn := tt.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
return
|
||||
}
|
||||
|
||||
return rn.Resource.GetID()
|
||||
}
|
||||
|
||||
9
server/automation/envoy/yaml_encode.gen.go
generated
9
server/automation/envoy/yaml_encode.gen.go
generated
@ -346,3 +346,12 @@ func (e YamlEncoder) getWriter(p envoyx.EncodeParams) (out io.Writer, err error)
|
||||
err = errors.Errorf("YAML encoder expects a writer conforming to io.Writer interface")
|
||||
return
|
||||
}
|
||||
|
||||
func safeParentIdentifier(tt envoyx.Traverser, n *envoyx.Node, ref envoyx.Ref) (out string) {
|
||||
aux := tt.ParentForRef(n, ref)
|
||||
if aux == nil {
|
||||
return ref.Identifiers.FriendlyIdentifier()
|
||||
}
|
||||
|
||||
return aux.Identifiers.FriendlyIdentifier()
|
||||
}
|
||||
|
||||
@ -215,16 +215,9 @@ func (e StoreEncoder) encode{{.expIdent}}(ctx context.Context, p envoyx.EncodePa
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -508,4 +501,13 @@ func (e StoreEncoder) makeNamespaceFilter(scope *envoyx.Node, refs map[string]*e
|
||||
|
||||
return
|
||||
}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
func safeParentID(tt envoyx.Traverser, n *envoyx.Node, ref envoyx.Ref) (out uint64) {
|
||||
rn := tt.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
return
|
||||
}
|
||||
|
||||
return rn.Resource.GetID()
|
||||
}
|
||||
|
||||
@ -294,3 +294,12 @@ func (e YamlEncoder) getWriter(p envoyx.EncodeParams) (out io.Writer, err error)
|
||||
err = errors.Errorf("YAML encoder expects a writer conforming to io.Writer interface")
|
||||
return
|
||||
}
|
||||
|
||||
func safeParentIdentifier(tt envoyx.Traverser, n *envoyx.Node, ref envoyx.Ref) (out string) {
|
||||
aux := tt.ParentForRef(n, ref)
|
||||
if aux == nil {
|
||||
return ref.Identifiers.FriendlyIdentifier()
|
||||
}
|
||||
|
||||
return aux.Identifiers.FriendlyIdentifier()
|
||||
}
|
||||
|
||||
75
server/compose/envoy/store_encode.gen.go
generated
75
server/compose/envoy/store_encode.gen.go
generated
@ -221,16 +221,9 @@ func (e StoreEncoder) encodeChart(ctx context.Context, p envoyx.EncodeParams, s
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -440,16 +433,9 @@ func (e StoreEncoder) encodeModule(ctx context.Context, p envoyx.EncodeParams, s
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -674,16 +660,9 @@ func (e StoreEncoder) encodeModuleField(ctx context.Context, p envoyx.EncodePara
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -896,16 +875,9 @@ func (e StoreEncoder) encodeNamespace(ctx context.Context, p envoyx.EncodeParams
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -1132,16 +1104,9 @@ func (e StoreEncoder) encodePage(ctx context.Context, p envoyx.EncodeParams, s s
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -1356,16 +1321,9 @@ func (e StoreEncoder) encodePageLayout(ctx context.Context, p envoyx.EncodeParam
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -1583,3 +1541,12 @@ func (e StoreEncoder) makeNamespaceFilter(scope *envoyx.Node, refs map[string]*e
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func safeParentID(tt envoyx.Traverser, n *envoyx.Node, ref envoyx.Ref) (out uint64) {
|
||||
rn := tt.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
return
|
||||
}
|
||||
|
||||
return rn.Resource.GetID()
|
||||
}
|
||||
|
||||
9
server/compose/envoy/yaml_encode.gen.go
generated
9
server/compose/envoy/yaml_encode.gen.go
generated
@ -710,3 +710,12 @@ func (e YamlEncoder) getWriter(p envoyx.EncodeParams) (out io.Writer, err error)
|
||||
err = errors.Errorf("YAML encoder expects a writer conforming to io.Writer interface")
|
||||
return
|
||||
}
|
||||
|
||||
func safeParentIdentifier(tt envoyx.Traverser, n *envoyx.Node, ref envoyx.Ref) (out string) {
|
||||
aux := tt.ParentForRef(n, ref)
|
||||
if aux == nil {
|
||||
return ref.Identifiers.FriendlyIdentifier()
|
||||
}
|
||||
|
||||
return aux.Identifiers.FriendlyIdentifier()
|
||||
}
|
||||
|
||||
@ -25,15 +25,9 @@ func (e YamlEncoder) encodeChartConfigC(ctx context.Context, p envoyx.EncodePara
|
||||
continue
|
||||
}
|
||||
|
||||
mNode := tt.ParentForRef(n, modRef)
|
||||
if mNode == nil {
|
||||
err = fmt.Errorf("invalid module reference %v: module does not exist", modRef)
|
||||
return
|
||||
}
|
||||
|
||||
r, err := y7s.MakeMap(
|
||||
"filter", r.Filter,
|
||||
"module", mNode.Identifiers.FriendlyIdentifier(),
|
||||
"module", safeParentIdentifier(tt, n, modRef),
|
||||
"metrics", r.Metrics,
|
||||
"dimensions", r.Dimensions,
|
||||
"yAxis", r.YAxis,
|
||||
@ -69,25 +63,14 @@ func (e YamlEncoder) encodeModuleFieldOptionsC(ctx context.Context, p envoyx.Enc
|
||||
switch f.Kind {
|
||||
case "Record":
|
||||
modRef := n.References["Options.ModuleID"]
|
||||
mNode := tt.ParentForRef(n, modRef)
|
||||
if mNode == nil {
|
||||
err = fmt.Errorf("invalid module reference %v: module does not exist", modRef)
|
||||
return
|
||||
}
|
||||
opt["module"] = mNode.Identifiers.FriendlyIdentifier()
|
||||
opt["module"] = safeParentIdentifier(tt, n, modRef)
|
||||
delete(opt, "moduleID")
|
||||
|
||||
case "User":
|
||||
aux := make([]string, 0, 2)
|
||||
for i := range opt.Strings("roles") {
|
||||
roleRef := n.References[fmt.Sprintf("Options.RoleID.%d", i)]
|
||||
rNode := tt.ParentForRef(n, roleRef)
|
||||
if rNode == nil {
|
||||
err = fmt.Errorf("invalid role reference %v: role does not exist", roleRef)
|
||||
return
|
||||
}
|
||||
|
||||
aux = append(aux, rNode.Identifiers.FriendlyIdentifier())
|
||||
aux = append(aux, safeParentIdentifier(tt, n, roleRef))
|
||||
}
|
||||
opt["roles"] = aux
|
||||
delete(opt, "role")
|
||||
@ -131,34 +114,19 @@ func (e YamlEncoder) encodePageBlockC(ctx context.Context, p envoyx.EncodeParams
|
||||
b = e.cleanupPageblockRecordList(b)
|
||||
|
||||
modRef := n.References[fmt.Sprintf("Blocks.%d.Options.ModuleID", index)]
|
||||
node := tt.ParentForRef(n, modRef)
|
||||
if node == nil {
|
||||
err = fmt.Errorf("invalid module reference %v: module does not exist", modRef)
|
||||
return
|
||||
}
|
||||
b.Options["module"] = node.Identifiers.FriendlyIdentifier()
|
||||
b.Options["module"] = safeParentIdentifier(tt, n, modRef)
|
||||
delete(b.Options, "moduleID")
|
||||
break
|
||||
|
||||
case "RecordOrganizer":
|
||||
modRef := n.References[fmt.Sprintf("Blocks.%d.Options.ModuleID", index)]
|
||||
node := tt.ParentForRef(n, modRef)
|
||||
if node == nil {
|
||||
err = fmt.Errorf("invalid module reference %v: module does not exist", modRef)
|
||||
return
|
||||
}
|
||||
b.Options["module"] = node.Identifiers.FriendlyIdentifier()
|
||||
b.Options["module"] = safeParentIdentifier(tt, n, modRef)
|
||||
delete(b.Options, "moduleID")
|
||||
break
|
||||
|
||||
case "Chart":
|
||||
chrRef := n.References[fmt.Sprintf("Blocks.%d.Options.ChartID", index)]
|
||||
node := tt.ParentForRef(n, chrRef)
|
||||
if node == nil {
|
||||
err = fmt.Errorf("invalid chart reference %v: chart does not exist", chrRef)
|
||||
return
|
||||
}
|
||||
b.Options["chart"] = node.Identifiers.FriendlyIdentifier()
|
||||
b.Options["chart"] = safeParentIdentifier(tt, n, chrRef)
|
||||
delete(b.Options, "chartID")
|
||||
break
|
||||
|
||||
@ -169,12 +137,7 @@ func (e YamlEncoder) encodePageBlockC(ctx context.Context, p envoyx.EncodeParams
|
||||
fOpts, _ := (feed["options"]).(map[string]interface{})
|
||||
|
||||
modRef := n.References[fmt.Sprintf("Blocks.%d.Options.feeds.%d.ModuleID", index, i)]
|
||||
node := tt.ParentForRef(n, modRef)
|
||||
if node == nil {
|
||||
err = fmt.Errorf("invalid module reference %v: module does not exist", modRef)
|
||||
return
|
||||
}
|
||||
fOpts["module"] = node.Identifiers.FriendlyIdentifier()
|
||||
fOpts["module"] = safeParentIdentifier(tt, n, modRef)
|
||||
delete(fOpts, "moduleID")
|
||||
}
|
||||
break
|
||||
@ -188,13 +151,7 @@ func (e YamlEncoder) encodePageBlockC(ctx context.Context, p envoyx.EncodeParams
|
||||
}
|
||||
|
||||
wfRef := n.References[fmt.Sprintf("Blocks.%d.Options.buttons.%d.WorkflowID", index, i)]
|
||||
node := tt.ParentForRef(n, wfRef)
|
||||
if node == nil {
|
||||
err = fmt.Errorf("invalid workflow reference %v: workflow does not exist", wfRef)
|
||||
return
|
||||
}
|
||||
|
||||
button["workflow"] = node.Identifiers.FriendlyIdentifier()
|
||||
button["workflow"] = safeParentIdentifier(tt, n, wfRef)
|
||||
delete(button, "workflowID")
|
||||
i++
|
||||
}
|
||||
@ -204,26 +161,16 @@ func (e YamlEncoder) encodePageBlockC(ctx context.Context, p envoyx.EncodeParams
|
||||
mm, _ := b.Options["metrics"].([]interface{})
|
||||
for i, m := range mm {
|
||||
modRef := n.References[fmt.Sprintf("Blocks.%d.Options.metrics.%d.ModuleID", index, i)]
|
||||
node := tt.ParentForRef(n, modRef)
|
||||
if node == nil {
|
||||
err = fmt.Errorf("invalid module reference %v: module does not exist", modRef)
|
||||
return
|
||||
}
|
||||
|
||||
mops, _ := m.(map[string]interface{})
|
||||
mops["module"] = node.Identifiers.FriendlyIdentifier()
|
||||
mops["module"] = safeParentIdentifier(tt, n, modRef)
|
||||
delete(mops, "moduleID")
|
||||
}
|
||||
break
|
||||
|
||||
case "Comment":
|
||||
modRef := n.References[fmt.Sprintf("Blocks.%d.Options.ModuleID", index)]
|
||||
node := tt.ParentForRef(n, modRef)
|
||||
if node == nil {
|
||||
err = fmt.Errorf("invalid module reference %v: module does not exist", modRef)
|
||||
return
|
||||
}
|
||||
b.Options["module"] = node.Identifiers.FriendlyIdentifier()
|
||||
b.Options["module"] = safeParentIdentifier(tt, n, modRef)
|
||||
delete(b.Options, "moduleID")
|
||||
break
|
||||
|
||||
@ -254,14 +201,8 @@ func (e YamlEncoder) encodeProgressPageblockVal(k string, index int, n *envoyx.N
|
||||
}
|
||||
|
||||
modRef := n.References[fmt.Sprintf("Blocks.%d.Options.%s.ModuleID", index, k)]
|
||||
node := tt.ParentForRef(n, modRef)
|
||||
if node == nil {
|
||||
err = fmt.Errorf("invalid module reference %v: module does not exist", modRef)
|
||||
return
|
||||
}
|
||||
|
||||
opt := b.Options[k].(map[string]any)
|
||||
opt["moduleID"] = node.Identifiers.FriendlyIdentifier()
|
||||
opt["moduleID"] = safeParentIdentifier(tt, n, modRef)
|
||||
delete(opt, "moduleID")
|
||||
|
||||
return
|
||||
|
||||
130
server/system/envoy/store_encode.gen.go
generated
130
server/system/envoy/store_encode.gen.go
generated
@ -250,16 +250,9 @@ func (e StoreEncoder) encodeApplication(ctx context.Context, p envoyx.EncodePara
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -462,16 +455,9 @@ func (e StoreEncoder) encodeApigwRoute(ctx context.Context, p envoyx.EncodeParam
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -674,16 +660,9 @@ func (e StoreEncoder) encodeApigwFilter(ctx context.Context, p envoyx.EncodePara
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -886,16 +865,9 @@ func (e StoreEncoder) encodeAuthClient(ctx context.Context, p envoyx.EncodeParam
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -1099,16 +1071,9 @@ func (e StoreEncoder) encodeQueue(ctx context.Context, p envoyx.EncodeParams, s
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -1312,16 +1277,9 @@ func (e StoreEncoder) encodeReport(ctx context.Context, p envoyx.EncodeParams, s
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -1525,16 +1483,9 @@ func (e StoreEncoder) encodeRole(ctx context.Context, p envoyx.EncodeParams, s s
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -1738,16 +1689,9 @@ func (e StoreEncoder) encodeTemplate(ctx context.Context, p envoyx.EncodeParams,
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -1951,16 +1895,9 @@ func (e StoreEncoder) encodeUser(ctx context.Context, p envoyx.EncodeParams, s s
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -2164,16 +2101,9 @@ func (e StoreEncoder) encodeDalConnection(ctx context.Context, p envoyx.EncodePa
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -2377,16 +2307,9 @@ func (e StoreEncoder) encodeDalSensitivityLevel(ctx context.Context, p envoyx.En
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
continue
|
||||
}
|
||||
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
@ -2524,3 +2447,12 @@ func (e StoreEncoder) getScopeNodes(ctx context.Context, s store.Storer, nn envo
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func safeParentID(tt envoyx.Traverser, n *envoyx.Node, ref envoyx.Ref) (out uint64) {
|
||||
rn := tt.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
return
|
||||
}
|
||||
|
||||
return rn.Resource.GetID()
|
||||
}
|
||||
|
||||
@ -57,18 +57,7 @@ func (e StoreEncoder) encodeResourceTranslation(ctx context.Context, p envoyx.En
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
}
|
||||
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
@ -54,18 +54,7 @@ func (e StoreEncoder) encodeRbacRule(ctx context.Context, p envoyx.EncodeParams,
|
||||
var auxID uint64
|
||||
err = func() (err error) {
|
||||
for fieldLabel, ref := range n.References {
|
||||
rn := tree.ParentForRef(n, ref)
|
||||
if rn == nil {
|
||||
err = fmt.Errorf("parent reference %v not found", ref)
|
||||
return
|
||||
}
|
||||
|
||||
auxID = rn.Resource.GetID()
|
||||
if auxID == 0 {
|
||||
err = fmt.Errorf("parent reference does not provide an identifier")
|
||||
return
|
||||
}
|
||||
|
||||
auxID = safeParentID(tree, n, ref)
|
||||
err = n.Resource.SetValue(fieldLabel, 0, auxID)
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
9
server/system/envoy/yaml_encode.gen.go
generated
9
server/system/envoy/yaml_encode.gen.go
generated
@ -1105,3 +1105,12 @@ func (e YamlEncoder) getWriter(p envoyx.EncodeParams) (out io.Writer, err error)
|
||||
err = errors.Errorf("YAML encoder expects a writer conforming to io.Writer interface")
|
||||
return
|
||||
}
|
||||
|
||||
func safeParentIdentifier(tt envoyx.Traverser, n *envoyx.Node, ref envoyx.Ref) (out string) {
|
||||
aux := tt.ParentForRef(n, ref)
|
||||
if aux == nil {
|
||||
return ref.Identifiers.FriendlyIdentifier()
|
||||
}
|
||||
|
||||
return aux.Identifiers.FriendlyIdentifier()
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user