sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #07553
Re: [Merge] ~cgrabowski/maas:go_network_discovery into maas:master
just a nit
Diff comments:
> diff --git a/src/maasagent/cmd/netmon/main.go b/src/maasagent/cmd/netmon/main.go
> index e83655f..09306fa 100644
> --- a/src/maasagent/cmd/netmon/main.go
> +++ b/src/maasagent/cmd/netmon/main.go
> @@ -1,9 +1,93 @@
> package main
>
> +/*
> + Copyright 2023 Canonical Ltd. This software is licensed under the
> + GNU Affero General Public License version 3 (see the file LICENSE).
> +*/
> +
> import (
> + "context"
> + "encoding/json"
> + "errors"
> + "os"
> + "strconv"
> +
> + "github.com/rs/zerolog"
> + "github.com/rs/zerolog/log"
> + "golang.org/x/sync/errgroup"
> +
> "launchpad.net/maas/maas/src/maasagent/internal/netmon"
> )
>
> +var (
> + ErrMissingIface = errors.New("Missing interface argument")
> +)
> +
> +func Run() int {
> + var (
> + debug bool
> + err error
> + )
> +
> + log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
> +
> + debugStr, ok := os.LookupEnv("DEBUG")
> + if ok {
> + debug, err = strconv.ParseBool(debugStr)
> + if err != nil {
> + log.Error().Err(err).Msg("Unable to parse debug flag")
> + return 2
> + }
> + }
> +
> + if debug {
> + zerolog.SetGlobalLevel(zerolog.DebugLevel)
> + } else {
> + zerolog.SetGlobalLevel(zerolog.InfoLevel)
> + }
> +
> + if len(os.Args) < 2 {
> + log.Error().Err(ErrMissingIface).Msg("Please provide an interface to monitor")
> + return 2
> + }
> + iface := os.Args[1]
> +
> + bkg := context.Background()
> + ctx, cancel := context.WithCancel(bkg)
> +
> + sigC := make(chan os.Signal)
> + resultC := make(chan netmon.Result)
> +
> + g, ctx := errgroup.WithContext(ctx)
> + g.SetLimit(2)
> +
> + svc := netmon.NewService(iface)
> + g.Go(func() error {
> + return svc.Start(ctx, resultC)
> + })
> + g.Go(func() error {
> + encoder := json.NewEncoder(os.Stdout)
> + for {
> + select {
> + case <-sigC:
> + cancel()
> + return nil
> + case res := <-resultC:
> + err = encoder.Encode(res)
> + if err != nil {
> + return err
> + }
> + }
> + }
> + })
> + log.Info().Msg("Service netmon started")
> + if err := g.Wait(); err != nil {
> + log.Error().Err(err).Msg("")
you can use '.Send()' instead of `.Msg("")`
> + return 1
> + }
> + return 0
> +}
> +
> func main() {
> - netmon.NewService()
> + os.Exit(Run())
> }
--
https://code.launchpad.net/~cgrabowski/maas/+git/maas/+merge/441702
Your team MAAS Committers is subscribed to branch maas:master.
References