Suggested changes

This commit is contained in:
Phani Teja Marupaka
2020-06-16 11:10:37 -07:00
parent 0f0efe2a4c
commit dbb16dcb6d
6 changed files with 115 additions and 7 deletions

View File

@@ -128,9 +128,9 @@ func (r *CreateSetterRunner) preRunE(c *cobra.Command, args []string) error {
r.CreateSetter.Type = r.Set.SetPartialField.Type
if r.CreateSetter.Type == "array" {
// this is just a place holder value, we derive the actual value at
// later point from the field path
r.CreateSetter.FieldValue = "listValues"
if !c.Flag("field").Changed {
return errors.Errorf("field flag must be set for array type setters")
}
}
}
return nil

View File

@@ -129,8 +129,101 @@ spec:
},
{
name: "add replicas with schema list values",
args: []string{"list", "a", "--description", "hello world", "--set-by", "me", "--type", "array", "--field", "spec.list"},
name: "list values with schema",
args: []string{"list", "--description", "hello world", "--set-by", "me", "--type", "array", "--field", "spec.list"},
schema: `{"maxItems": 3, "type": "array", "items": {"type": "string"}}`,
input: `
apiVersion: example.com/v1beta1
kind: Example1
spec:
list:
- "a"
- "b"
- "c"
---
apiVersion: example.com/v1beta1
kind: Example2
spec:
list:
- "a"
- "b"
- "c"
`,
inputOpenAPI: `
apiVersion: v1alpha1
kind: Example
`,
expectedOpenAPI: `
apiVersion: v1alpha1
kind: Example
openAPI:
definitions:
io.k8s.cli.setters.list:
items:
type: string
maxItems: 3
type: array
description: hello world
x-k8s-cli:
setter:
name: list
value: ""
listValues:
- a
- b
- c
setBy: me
`,
expectedResources: `
apiVersion: example.com/v1beta1
kind: Example1
spec:
list: # {"$openapi":"list"}
- "a"
- "b"
- "c"
---
apiVersion: example.com/v1beta1
kind: Example2
spec:
list: # {"$openapi":"list"}
- "a"
- "b"
- "c"
`,
},
{
name: "error list path with different values",
args: []string{"list", "--description", "hello world", "--set-by", "me", "--type", "array", "--field", "spec.list"},
schema: `{"maxItems": 3, "type": "array", "items": {"type": "string"}}`,
input: `
apiVersion: example.com/v1beta1
kind: Example
spec:
list:
- "a"
- "b"
- "c"
---
apiVersion: example.com/v1beta1
kind: Example
spec:
list:
- "c"
- "d"
`,
inputOpenAPI: `
apiVersion: v1alpha1
kind: Example
`,
err: `setters can only be created for fields with same values, encountered different ` +
`array values for specified field path: [c d], [a b c]`,
},
{
name: "list values error if field not set",
args: []string{"list", "a", "--description", "hello world", "--set-by", "me", "--type", "array"},
schema: `{"maxItems": 3, "type": "array", "items": {"type": "string"}}`,
input: `
apiVersion: example.com/v1beta1
@@ -174,6 +267,7 @@ spec:
- "b"
- "c"
`,
err: `field flag must be set for array type setters`,
},
{
name: "add replicas with value set by flag",

View File

@@ -272,7 +272,6 @@ openAPI:
x-k8s-cli:
setter:
name: list
value: List Values
listValues:
- a
- b

View File

@@ -168,6 +168,7 @@ spec:
replicas: 4 # {"$ref":"#/definitions/io.k8s.cli.setters.replicas"}
`,
},
{
name: "set image with value",
args: []string{"tag", "1.8.1"},