Validation: simplify output rendering

This commit is contained in:
Justin Santa Barbara 2018-03-20 01:27:45 -04:00
parent efcae92e7b
commit 3f8edb34a9
1 changed files with 14 additions and 27 deletions

View File

@ -141,13 +141,23 @@ func RunValidateCluster(f *util.Factory, cmd *cobra.Command, args []string, out
return nil, err return nil, err
} }
case OutputYaml: case OutputYaml:
if err := validateClusterOutputYAML(validationCluster, validationFailed, out); err != nil { y, err := yaml.Marshal(validationCluster)
return nil, err if err != nil {
return nil, fmt.Errorf("unable to marshal YAML: %v", err)
} }
if _, err := out.Write(y); err != nil {
return nil, fmt.Errorf("unable to print data: %v", err)
}
case OutputJSON: case OutputJSON:
if err := validateClusterOutputJSON(validationCluster, validationFailed, out); err != nil { j, err := json.Marshal(validationCluster)
return nil, err if err != nil {
return nil, fmt.Errorf("unable to marshal JSON: %v", err)
} }
if _, err := out.Write(j); err != nil {
return nil, fmt.Errorf("unable to print data: %v", err)
}
default: default:
return nil, fmt.Errorf("Unknown output format: %q", options.output) return nil, fmt.Errorf("Unknown output format: %q", options.output)
} }
@ -250,26 +260,3 @@ func validateClusterOutputTable(validationCluster *validation.ValidationCluster,
return validationFailed return validationFailed
} }
} }
func validateClusterOutputYAML(validationCluster *validation.ValidationCluster, validationFailed error, out io.Writer) error {
y, err := yaml.Marshal(validationCluster)
if err != nil {
return fmt.Errorf("unable to marshall YAML: %v\n", err)
}
return validateOutput(y, validationFailed, out)
}
func validateClusterOutputJSON(validationCluster *validation.ValidationCluster, validationFailed error, out io.Writer) error {
j, err := json.Marshal(validationCluster)
if err != nil {
return fmt.Errorf("unable to marshall JSON: %v\n", err)
}
return validateOutput(j, validationFailed, out)
}
func validateOutput(b []byte, validationFailed error, out io.Writer) error {
if _, err := out.Write(b); err != nil {
return fmt.Errorf("unable to print data: %v\n", err)
}
return validationFailed
}