mirror of https://github.com/k3s-io/k3s
Add the ability to print objects that are parsed in, without sending them anywhere.
parent
de3799d605
commit
8f1643bc0c
|
@ -266,12 +266,48 @@ func checkStorage(storage string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getPrinter() kubecfg.ResourcePrinter {
|
||||||
|
var printer kubecfg.ResourcePrinter
|
||||||
|
switch {
|
||||||
|
case *json:
|
||||||
|
printer = &kubecfg.IdentityPrinter{}
|
||||||
|
case *yaml:
|
||||||
|
printer = &kubecfg.YAMLPrinter{}
|
||||||
|
case len(*templateFile) > 0 || len(*templateStr) > 0:
|
||||||
|
var data []byte
|
||||||
|
if len(*templateFile) > 0 {
|
||||||
|
var err error
|
||||||
|
data, err = ioutil.ReadFile(*templateFile)
|
||||||
|
if err != nil {
|
||||||
|
glog.Fatalf("Error reading template %s, %v\n", *templateFile, err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
data = []byte(*templateStr)
|
||||||
|
}
|
||||||
|
tmpl, err := template.New("output").Parse(string(data))
|
||||||
|
if err != nil {
|
||||||
|
glog.Fatalf("Error parsing template %s, %v\n", string(data), err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
printer = &kubecfg.TemplatePrinter{
|
||||||
|
Template: tmpl,
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
printer = humanReadablePrinter()
|
||||||
|
}
|
||||||
|
return printer
|
||||||
|
}
|
||||||
|
|
||||||
func executeAPIRequest(method string, c *client.Client) bool {
|
func executeAPIRequest(method string, c *client.Client) bool {
|
||||||
storage, path, hasSuffix := storagePathFromArg(flag.Arg(1))
|
storage, path, hasSuffix := storagePathFromArg(flag.Arg(1))
|
||||||
validStorage := checkStorage(storage)
|
validStorage := checkStorage(storage)
|
||||||
verb := ""
|
verb := ""
|
||||||
setBody := false
|
setBody := false
|
||||||
var version uint64
|
var version uint64
|
||||||
|
|
||||||
|
printer := getPrinter()
|
||||||
|
|
||||||
switch method {
|
switch method {
|
||||||
case "get":
|
case "get":
|
||||||
verb = "GET"
|
verb = "GET"
|
||||||
|
@ -309,6 +345,14 @@ func executeAPIRequest(method string, c *client.Client) bool {
|
||||||
if !validStorage || !hasSuffix {
|
if !validStorage || !hasSuffix {
|
||||||
glog.Fatalf("usage: kubecfg [OPTIONS] %s <%s>/<id>", method, prettyWireStorage())
|
glog.Fatalf("usage: kubecfg [OPTIONS] %s <%s>/<id>", method, prettyWireStorage())
|
||||||
}
|
}
|
||||||
|
case "print":
|
||||||
|
data := readConfig(storage, c.RESTClient.Codec)
|
||||||
|
obj, err := latest.Codec.Decode(data)
|
||||||
|
if err != nil {
|
||||||
|
glog.Fatalf("error setting resource version: %v", err)
|
||||||
|
}
|
||||||
|
printer.PrintObj(obj, os.Stdout)
|
||||||
|
return true
|
||||||
default:
|
default:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -345,36 +389,6 @@ func executeAPIRequest(method string, c *client.Client) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
var printer kubecfg.ResourcePrinter
|
|
||||||
switch {
|
|
||||||
case *json:
|
|
||||||
printer = &kubecfg.IdentityPrinter{}
|
|
||||||
case *yaml:
|
|
||||||
printer = &kubecfg.YAMLPrinter{}
|
|
||||||
case len(*templateFile) > 0 || len(*templateStr) > 0:
|
|
||||||
var data []byte
|
|
||||||
if len(*templateFile) > 0 {
|
|
||||||
var err error
|
|
||||||
data, err = ioutil.ReadFile(*templateFile)
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Error reading template %s, %v\n", *templateFile, err)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
data = []byte(*templateStr)
|
|
||||||
}
|
|
||||||
tmpl, err := template.New("output").Parse(string(data))
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Error parsing template %s, %v\n", string(data), err)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
printer = &kubecfg.TemplatePrinter{
|
|
||||||
Template: tmpl,
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
printer = humanReadablePrinter()
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = printer.PrintObj(obj, os.Stdout); err != nil {
|
if err = printer.PrintObj(obj, os.Stdout); err != nil {
|
||||||
body, _ := result.Raw()
|
body, _ := result.Raw()
|
||||||
glog.Fatalf("Failed to print: %v\nRaw received object:\n%#v\n\nBody received: %v", err, obj, string(body))
|
glog.Fatalf("Failed to print: %v\nRaw received object:\n%#v\n\nBody received: %v", err, obj, string(body))
|
||||||
|
|
Loading…
Reference in New Issue