Maintain resources in order loaded.

This commit is contained in:
Jeffrey Regan
2019-06-03 11:22:53 -07:00
parent af57fc3ece
commit 4162dbc2d8
39 changed files with 1074 additions and 617 deletions

View File

@@ -24,7 +24,7 @@ func (p *HashTransformerPlugin) Config(
// Transform appends hash to generated resources.
func (p *HashTransformerPlugin) Transform(m resmap.ResMap) error {
for _, res := range m {
for _, res := range m.Resources() {
if res.NeedHashSuffix() {
h, err := p.hasher.Hash(res)
if err != nil {

View File

@@ -86,25 +86,18 @@ func (p *InventoryTransformerPlugin) Transform(m resmap.ResMap) error {
}
if p.Policy == types.GarbageCollect.String() {
for byeBye := range m {
delete(m, byeBye)
for _, byeBye := range m.AllIds() {
m.Remove(byeBye)
}
}
id := cm.Id()
if _, ok := m[id]; ok {
return fmt.Errorf(
"id '%v' already used; use a different name", id)
}
m[id] = cm
return nil
return m.Append(cm)
}
func makeInventory(m resmap.ResMap) (
inv *inventory.Inventory, hash string, err error) {
inv = inventory.NewInventory()
var keys []string
for _, r := range m {
for _, r := range m.Resources() {
ns := getNamespace(r)
item := resid.NewItemId(r.GetGvk(), ns, r.GetName())
if _, ok := inv.Current[item]; ok {
@@ -128,7 +121,7 @@ func getNamespace(r *resource.Resource) string {
func computeRefs(r *resource.Resource, m resmap.ResMap) (refs []resid.ItemId) {
for _, refid := range r.GetRefBy() {
ref := m[refid]
ref := m.GetById(refid)
ns := getNamespace(ref)
refs = append(refs, resid.NewItemId(ref.GetGvk(), ns, ref.GetName()))
}

View File

@@ -38,8 +38,8 @@ func (p *ReplicaCountTransformerPlugin) Transform(m resmap.ResMap) error {
return r.ItemId.Name == p.Replica.Name
}
for _, r := range m.GetMatchingIds(matcher) {
kMap := m[r].Map()
for _, id := range m.GetMatchingIds(matcher) {
kMap := m.GetById(id).Map()
specInterface, ok := kMap[fldSpec]
if !ok {

View File

@@ -25,7 +25,7 @@ func (p *plugin) Config(
// Transform appends hash to generated resources.
func (p *plugin) Transform(m resmap.ResMap) error {
for _, res := range m {
for _, res := range m.Resources() {
if res.NeedHashSuffix() {
h, err := p.hasher.Hash(res)
if err != nil {

View File

@@ -87,25 +87,18 @@ func (p *plugin) Transform(m resmap.ResMap) error {
}
if p.Policy == types.GarbageCollect.String() {
for byeBye := range m {
delete(m, byeBye)
for _, byeBye := range m.AllIds() {
m.Remove(byeBye)
}
}
id := cm.Id()
if _, ok := m[id]; ok {
return fmt.Errorf(
"id '%v' already used; use a different name", id)
}
m[id] = cm
return nil
return m.Append(cm)
}
func makeInventory(m resmap.ResMap) (
inv *inventory.Inventory, hash string, err error) {
inv = inventory.NewInventory()
var keys []string
for _, r := range m {
for _, r := range m.Resources() {
ns := getNamespace(r)
item := resid.NewItemId(r.GetGvk(), ns, r.GetName())
if _, ok := inv.Current[item]; ok {
@@ -129,7 +122,7 @@ func getNamespace(r *resource.Resource) string {
func computeRefs(r *resource.Resource, m resmap.ResMap) (refs []resid.ItemId) {
for _, refid := range r.GetRefBy() {
ref := m[refid]
ref := m.GetById(refid)
ns := getNamespace(ref)
refs = append(refs, resid.NewItemId(ref.GetGvk(), ns, ref.GetName()))
}

View File

@@ -122,4 +122,3 @@ namespace: default
th.AssertActualEqualsExpected(rm, inv+"---"+content)
}

View File

@@ -39,8 +39,8 @@ func (p *plugin) Transform(m resmap.ResMap) error {
return r.ItemId.Name == p.Replica.Name
}
for _, r := range m.GetMatchingIds(matcher) {
kMap := m[r].Map()
for _, id := range m.GetMatchingIds(matcher) {
kMap := m.GetById(id).Map()
specInterface, ok := kMap[fldSpec]
if !ok {