func StartLocalkube() { if Server.ShowVersion { fmt.Println("localkube version:", version.GetVersion()) os.Exit(0) } // Get the etcd logger for the api repo apiRepoLogger := capnslog.MustRepoLogger("github.com/coreos/etcd/etcdserver/api") // Set the logging level to NOTICE as there is an INFO lvl log statement that runs every few seconds -> log spam apiRepoLogger.SetRepoLogLevel(capnslog.NOTICE) // TODO: Require root SetupServer(Server) Server.StartAll() defer Server.StopAll() interruptChan := make(chan os.Signal, 1) signal.Notify(interruptChan, os.Interrupt) <-interruptChan fmt.Println("Shutting down...") }
func TestMarshallError(t *testing.T) { testErr := errors.New("TestMarshallError 1") errors.Wrap(testErr, "TestMarshallError 2") errors.Wrap(testErr, "TestMarshallError 3") errMsg, _ := FormatError(testErr) if _, err := MarshallError(errMsg, "default", version.GetVersion()); err != nil { t.Fatalf("Unexpected error: %s", err) } }
func TestMaybePrintUpdateText(t *testing.T) { tempDir := tests.MakeTempDir() defer os.RemoveAll(tempDir) viper.Set(config.WantUpdateNotification, true) viper.Set(config.ReminderWaitPeriodInHours, 24) var outputBuffer bytes.Buffer lastUpdateCheckFilePath := filepath.Join(tempDir, "last_update_check") // test that no update text is printed if the latest version is lower/equal to the current version latestVersionFromURL := "0.0.0-dev" handler := &URLHandlerCorrect{ releases: []Release{{Name: version.VersionPrefix + latestVersionFromURL}}, } server := httptest.NewServer(handler) defer server.Close() MaybePrintUpdateText(&outputBuffer, server.URL, lastUpdateCheckFilePath) if len(outputBuffer.String()) != 0 { t.Fatalf("Expected MaybePrintUpdateText to not output text as the current version is %s and version %s was served from URL but output was [%s]", version.GetVersion(), latestVersionFromURL, outputBuffer.String()) } // test that update text is printed if the latest version is greater than the current version latestVersionFromURL = "100.0.0-dev" handler = &URLHandlerCorrect{ releases: []Release{{Name: version.VersionPrefix + latestVersionFromURL}}, } server = httptest.NewServer(handler) defer server.Close() MaybePrintUpdateText(&outputBuffer, server.URL, lastUpdateCheckFilePath) if len(outputBuffer.String()) == 0 { t.Fatalf("Expected MaybePrintUpdateText to output text as the current version is %s and version %s was served from URL but output was [%s]", version.GetVersion(), latestVersionFromURL, outputBuffer.String()) } }
func ReportError(err error, url string) error { errMsg, err := FormatError(err) if err != nil { return errors.Wrap(err, "") } jsonErrorMsg, err := MarshallError(errMsg, "default", version.GetVersion()) if err != nil { return errors.Wrap(err, "") } if err != nil { return errors.Wrap(err, "") } err = UploadError(jsonErrorMsg, url) if err != nil { return errors.Wrap(err, "") } return nil }
func StartLocalkube() { if Server.ShowVersion { fmt.Println("localkube version:", version.GetVersion()) os.Exit(0) } // TODO: Require root SetupServer(Server) Server.StartAll() defer Server.StopAll() interruptChan := make(chan os.Signal, 1) signal.Notify(interruptChan, os.Interrupt) <-interruptChan fmt.Println("Shutting down...") }
func TestUploadError(t *testing.T) { testErr := errors.New("TestUploadError 1") errors.Wrap(testErr, "TestUploadError 2") errors.Wrap(testErr, "TestUploadError 3") errMsg, _ := FormatError(testErr) jsonErrMsg, _ := MarshallError(errMsg, "default", version.GetVersion()) server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, world!") })) if err := UploadError(jsonErrMsg, server.URL); err != nil { t.Fatalf("Unexpected error: %s", err) } server = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { http.Error(w, "failed to write report", 400) })) if err := UploadError(jsonErrMsg, server.URL); err == nil { t.Fatalf("UploadError should have errored from a 400 response") } }
package cmd import ( "fmt" "github.com/spf13/cobra" "k8s.io/minikube/pkg/version" ) var versionCmd = &cobra.Command{ Use: "version", Short: "Print the version of minikube.", Long: `Print the version of minikube.`, PersistentPreRun: func(cmd *cobra.Command, args []string) { // Explicitly disable update checking for the version command enableUpdateNotification = false RootCmd.PersistentPreRun(cmd, args) }, Run: func(command *cobra.Command, args []string) { fmt.Println("minikube version:", version.GetVersion()) }, } func init() { RootCmd.AddCommand(versionCmd) }