cmd

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2020 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RootCmd = &cobra.Command{
	Version: "v0.3.1-alpha",
	Use:     "procjon",
	Short:   "procjon monitoring server",
	Long: `Procjon is simple monitoring tool that will report change in 
availability or status of registered services. Please refer to
https://github.com/PiotrKozimor/procjon for details.`,
	Run: func(cmd *cobra.Command, args []string) {
		l, err := log.ParseLevel(logLevel)
		if err != nil {
			log.Fatalln(err)
		}
		log.SetLevel(l)
		logger.SetLevel(l)
		db, err := badger.Open(badger.DefaultOptions("services").WithLogger(logger))
		if err != nil {
			log.Fatal(err)
		}
		slackWebhook := os.Getenv("PROCJON_SLACK_WEBHOOK")
		if len(slackWebhook) == 0 {
			log.Fatal("Please set PROCJON_SLACK_WEBHOOK env variable.")
		}
		var s = procjon.Server{
			Sender: &sender.Slack{Webhook: slackWebhook},
			DB:     db,
		}
		b, err := ioutil.ReadFile(opts.RootCertPath)
		if err != nil {
			log.Fatalln(err)
		}
		cp := x509.NewCertPool()
		if !cp.AppendCertsFromPEM(b) {
			log.Fatalln("credentials: failed to append certificates")
		}
		cert, err := tls.LoadX509KeyPair(opts.CertPath, opts.KeyCertPath)
		if err != nil {
			log.Fatalln(err)
		}
		config := tls.Config{
			Certificates: []tls.Certificate{cert},
			ClientAuth:   tls.RequireAndVerifyClientCert,
			ClientCAs:    cp,
		}
		creds := credentials.NewTLS(&config)
		grpcServer := grpc.NewServer(grpc.Creds(creds))
		pb.RegisterProcjonServer(grpcServer, &s)
		lis, err := net.Listen("tcp4", opts.Endpoint)
		if err != nil {
			log.Fatalf("failed to listen: %v", err)
		}
		defer lis.Close()
		err = grpcServer.Serve(lis)
		if err != nil {
			log.Fatalf("failed to listen: %v", err)
		}
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL