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
}
case OutputYaml:
if err := validateClusterOutputYAML(validationCluster, validationFailed, out); err != nil {
return nil, err
y, err := yaml.Marshal(validationCluster)
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:
if err := validateClusterOutputJSON(validationCluster, validationFailed, out); err != nil {
return nil, err
j, err := json.Marshal(validationCluster)
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:
return nil, fmt.Errorf("Unknown output format: %q", options.output)
}
@ -250,26 +260,3 @@ func validateClusterOutputTable(validationCluster *validation.ValidationCluster,
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
}