feat(climc): support output yaml format (#17145)

This commit is contained in:
Zexi Li
2023-05-24 19:00:52 +08:00
committed by GitHub
parent dd8ca4b919
commit e6b87c3d29
2 changed files with 6 additions and 1 deletions
+1 -1
View File
@@ -72,7 +72,7 @@ type BaseOptions struct {
OsZoneName string `default:"$OS_ZONE_NAME" help:"Defaults to env[OS_ZONE_NAME]"`
OsEndpointType string `default:"$OS_ENDPOINT_TYPE|internalURL" help:"Defaults to env[OS_ENDPOINT_TYPE] or internalURL" choices:"publicURL|internalURL|adminURL"`
// ApiVersion string `default:"$API_VERSION" help:"override default modules service api version"`
OutputFormat string `default:"$CLIMC_OUTPUT_FORMAT|table" choices:"table|kv|json|flatten-table|flatten-kv" help:"output format"`
OutputFormat string `default:"$CLIMC_OUTPUT_FORMAT|table" choices:"table|kv|json|yaml|flatten-table|flatten-kv" help:"output format"`
ParallelRun int `help:"run in parallel to stess test the performance of server"`
+5
View File
@@ -30,6 +30,7 @@ const (
OUTPUT_FORMAT_TABLE = "table" // pretty table
OUTPUT_FORMAT_FLATTEN_TABLE = "flatten-table" // pretty table with flattened keys
OUTPUT_FORMAT_JSON = "json" // json string
OUTPUT_FORMAT_YAML = "yaml" // yaml string
OUTPUT_FORMAT_KV = "kv" // "key: value" as separate line
OUTPUT_FORMAT_FLATTEN_KV = "flatten-kv" // kv with flattened keys
)
@@ -47,6 +48,8 @@ func PrintList(list *printutils.ListResult, columns []string) {
case OUTPUT_FORMAT_JSON:
fmt.Print(jsonutils.Marshal(list).PrettyString())
fmt.Print("\n")
case OUTPUT_FORMAT_YAML:
fmt.Print(jsonutils.Marshal(list).YAMLString())
default:
fmt.Fprintf(os.Stderr, "unknown output format: %q\n", outputFormat)
}
@@ -61,6 +64,8 @@ func PrintObject(obj jsonutils.JSONObject) {
case OUTPUT_FORMAT_JSON:
fmt.Print(obj.PrettyString())
fmt.Print("\n")
case OUTPUT_FORMAT_YAML:
fmt.Print(obj.YAMLString())
case OUTPUT_FORMAT_FLATTEN_TABLE:
printObjectRecursive(obj)
case OUTPUT_FORMAT_FLATTEN_KV: