← Back to team overview

sts-sponsors team mailing list archive

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