address comments

This commit is contained in:
Mengqi Yu
2021-06-07 14:50:01 -07:00
parent cabbea0d97
commit 294070b3ab
5 changed files with 135 additions and 9 deletions

View File

@@ -54,7 +54,7 @@ func (c *copier) VisitList(s walk.Sources, _ *openapi.ResourceSchema, _ walk.Lis
origin := originItems[i] origin := originItems[i]
if dest.Value == origin.Value { if dest.Value == origin.Value {
// We should do it recursively on each node in the list. // We copy the comments recursively on each node in the list.
if err := CopyComments(yaml.NewRNode(dest), yaml.NewRNode(origin)); err != nil { if err := CopyComments(yaml.NewRNode(dest), yaml.NewRNode(origin)); err != nil {
return nil, err return nil, err
} }

View File

@@ -52,10 +52,7 @@ var _ Writer = ByteWriter{}
func (w ByteWriter) Write(inputNodes []*yaml.RNode) error { func (w ByteWriter) Write(inputNodes []*yaml.RNode) error {
// Copy the nodes to prevent writer from mutating the original nodes. // Copy the nodes to prevent writer from mutating the original nodes.
var nodes []*yaml.RNode nodes := copyRNodes(inputNodes)
for i := range inputNodes {
nodes = append(nodes, inputNodes[i].Copy())
}
yaml.DoSerializationHacksOnNodes(nodes) yaml.DoSerializationHacksOnNodes(nodes)
if w.Sort { if w.Sort {
if err := kioutil.SortNodes(nodes); err != nil { if err := kioutil.SortNodes(nodes); err != nil {
@@ -135,8 +132,15 @@ func (w ByteWriter) Write(inputNodes []*yaml.RNode) error {
for i := range nodes { for i := range nodes {
items.Content = append(items.Content, nodes[i].YNode()) items.Content = append(items.Content, nodes[i].YNode())
} }
err := encoder.Encode(doc) return encoder.Encode(doc)
return err }
func copyRNodes(in []*yaml.RNode) []*yaml.RNode {
out := make([]*yaml.RNode, len(in))
for i := range in {
out[i] = in[i].Copy()
}
return out
} }
// shouldJSONEncodeSingleBareNode determines if nodes contain a single node that should not be // shouldJSONEncodeSingleBareNode determines if nodes contain a single node that should not be

View File

@@ -91,6 +91,127 @@ a: b #first
`, `,
}, },
//
// Test Case
//
{
name: "handle_comments",
items: []string{
`# comment 0
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
namespace: my-space
labels:
env: dev
foo: bar
spec:
# comment 1
replicas: 3
selector:
# comment 2
matchLabels: # comment 3
# comment 4
app: nginx # comment 5
template:
metadata:
labels:
app: nginx
spec:
# comment 6
containers:
# comment 7
- name: nginx
image: nginx:1.14.2 # comment 8
ports:
# comment 9
- containerPort: 80 # comment 10
`,
`apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
# comment 1
- name: etcd-server-ssl
port: 2380
# comment 2
- name: etcd-client-ssl
port: 2379
`,
`apiVersion: constraints.gatekeeper.sh/v1beta1
kind: EnforceFoo
metadata:
name: enforce-foo
spec:
parameters:
naming_rules:
- kind: Folder
patterns:
# comment 1
- ^(dev|prod|staging|qa|shared)$
`,
},
expectedOutput: `# comment 0
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
namespace: my-space
labels:
env: dev
foo: bar
spec:
# comment 1
replicas: 3
selector:
# comment 2
matchLabels: # comment 3
# comment 4
app: nginx # comment 5
template:
metadata:
labels:
app: nginx
spec:
# comment 6
containers:
# comment 7
- name: nginx
image: nginx:1.14.2 # comment 8
ports:
# comment 9
- containerPort: 80 # comment 10
---
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
# comment 1
- name: etcd-server-ssl
port: 2380
# comment 2
- name: etcd-client-ssl
port: 2379
---
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: EnforceFoo
metadata:
name: enforce-foo
spec:
parameters:
naming_rules:
- kind: Folder
patterns:
# comment 1
- ^(dev|prod|staging|qa|shared)$
`,
},
// //
// Test Case // Test Case
// //

View File

@@ -420,8 +420,8 @@ spec:
image: nginx:1.7.9 image: nginx:1.7.9
# this is a container # this is a container
ports: ports:
- # this is a port # this is a port
containerPort: 80 - containerPort: 80
` `
s, err := FormatInput(strings.NewReader(y)) s, err := FormatInput(strings.NewReader(y))
assert.NoError(t, err) assert.NoError(t, err)

View File

@@ -40,6 +40,7 @@ func DoSerializationHacks(node *yaml.Node) {
} }
node.Content[0].HeadComment = "" node.Content[0].HeadComment = ""
} }
DoSerializationHacks(node)
} }
} }
} }