func NewCmdConfigView(out io.Writer, pathOptions *pathOptions) *cobra.Command { options := &viewOptions{pathOptions: pathOptions} cmd := &cobra.Command{ Use: "view", Short: "displays merged .kubeconfig settings or a specified .kubeconfig file.", Long: view_long, Example: view_example, Run: func(cmd *cobra.Command, args []string) { options.complete() printer, _, err := cmdutil.PrinterForCommand(cmd) if err != nil { glog.FatalDepth(1, err) } config, err := options.loadConfig() if err != nil { glog.FatalDepth(1, err) } err = printer.PrintObj(config, out) if err != nil { glog.FatalDepth(1, err) } }, } cmdutil.AddPrinterFlags(cmd) // Default to yaml cmd.Flags().Set("output", "yaml") options.merge.Default(true) cmd.Flags().Var(&options.merge, "merge", "merge together the full hierarchy of .kubeconfig files") return cmd }
func CheckErr(err error) { if err != nil { if errors.IsStatusError(err) { glog.FatalDepth(1, fmt.Sprintf("Error received from API: %s", err.Error())) } if errors.IsUnexpectedObjectError(err) { glog.FatalDepth(1, fmt.Sprintf("Unexpected object received from server: %s", err.Error())) } if client.IsUnexpectedStatusError(err) { glog.FatalDepth(1, fmt.Sprintf("Unexpected status received from server: %s", err.Error())) } glog.FatalDepth(1, fmt.Sprintf("Client error processing command: %s", err.Error())) } }
func fatal(msg string) { if glog.V(2) { glog.FatalDepth(2, msg) } fmt.Fprintln(os.Stderr, msg) os.Exit(1) }
// GetConfigFromFileOrDie tries to read a kubeconfig file and if it can't, it calls exit. One exception, missing files result in empty configs, not an exit func GetConfigFromFileOrDie(filename string) *clientcmdapi.Config { config, err := getConfigFromFile(filename) if err != nil { glog.FatalDepth(1, err) } return config }
func NewCmdConfigView(out io.Writer, ConfigAccess ConfigAccess) *cobra.Command { options := &ViewOptions{ConfigAccess: ConfigAccess} // Default to yaml defaultOutputFormat := "yaml" cmd := &cobra.Command{ Use: "view", Short: "Displays merged kubeconfig settings or a specified kubeconfig file.", Long: view_long, Example: view_example, Run: func(cmd *cobra.Command, args []string) { options.Complete() outputFormat := cmdutil.GetFlagString(cmd, "output") if outputFormat == "wide" { fmt.Printf("--output wide is not available in kubectl config view; reset to default output format (%s)\n\n", defaultOutputFormat) cmd.Flags().Set("output", defaultOutputFormat) } printer, _, err := cmdutil.PrinterForCommand(cmd) if err != nil { glog.FatalDepth(1, err) } version := cmdutil.OutputVersion(cmd, latest.Version) printer = kubectl.NewVersionedPrinter(printer, clientcmdapi.Scheme, version) if err := options.Run(out, printer); err != nil { glog.FatalDepth(1, err) } }, } cmdutil.AddPrinterFlags(cmd) cmd.Flags().Set("output", defaultOutputFormat) options.Merge.Default(true) cmd.Flags().Var(&options.Merge, "merge", "merge together the full hierarchy of kubeconfig files") cmd.Flags().BoolVar(&options.RawByteData, "raw", false, "display raw byte data") cmd.Flags().BoolVar(&options.Flatten, "flatten", false, "flatten the resulting kubeconfig file into self contained output (useful for creating portable kubeconfig files)") cmd.Flags().BoolVar(&options.Minify, "minify", false, "remove all information not used by current-context from the output") return cmd }
// fatal prints the message and then exits. If V(2) or greater, glog.Fatal // is invoked for extended information. func fatal(msg string) { // add newline if needed if !strings.HasSuffix(msg, "\n") { msg += "\n" } if glog.V(2) { glog.FatalDepth(2, msg) } fmt.Fprint(os.Stderr, msg) os.Exit(1) }
// GetConfigFromFileOrDie tries to read a kubeconfig file and if it can't, it calls exit. One exception, missing files result in empty configs, not an exit func GetConfigFromFileOrDie(filename string) *clientcmdapi.Config { config, err := LoadFromFile(filename) if err != nil && !os.IsNotExist(err) { glog.FatalDepth(1, err) } if config == nil { return clientcmdapi.NewConfig() } return config }
// fatal prints the message (if provided) and then exits. If V(2) or greater, // glog.Fatal is invoked for extended information. func fatal(msg string, code int) { if glog.V(2) { glog.FatalDepth(2, msg) } if len(msg) > 0 { // add newline if needed if !strings.HasSuffix(msg, "\n") { msg += "\n" } fmt.Fprint(os.Stderr, msg) } os.Exit(code) }
func checkErr(err error) { if err != nil { glog.FatalDepth(1, err) } }
func (Logger) Fatalf(format string, args ...interface{}) { glog.FatalDepth(3, fmt.Sprintf(format, args...)) }
func (g *glogger) Fatalln(args ...interface{}) { glog.FatalDepth(2, fmt.Sprintln(args...)) }
func (g *glogger) Fatal(args ...interface{}) { glog.FatalDepth(2, args...) }