...

Source file src/edge-infra.dev/pkg/edge/edgecli/commands/clusterconfig/listclusterconfig/list_clusterconfig.go

Documentation: edge-infra.dev/pkg/edge/edgecli/commands/clusterconfig/listclusterconfig

     1  package listclusterconfig
     2  
     3  import (
     4  	"context"
     5  	"encoding/json"
     6  	"fmt"
     7  	"time"
     8  
     9  	"edge-infra.dev/pkg/edge/edgecli"
    10  	"edge-infra.dev/pkg/edge/edgecli/constructors"
    11  	"edge-infra.dev/pkg/edge/edgecli/flagutil"
    12  	"edge-infra.dev/pkg/lib/cli/command"
    13  	"edge-infra.dev/pkg/lib/cli/rags"
    14  )
    15  
    16  func NewCmd(cfg *edgecli.Config) *command.Command {
    17  	var cmd *command.Command
    18  	flagsets := flagutil.GetConnectionFlags(cfg)
    19  	var bannerName, storeName string
    20  	cmd = &command.Command{
    21  		ShortUsage: "edge clusterconfig list",
    22  		ShortHelp:  "List cluster config",
    23  		Flags: append(
    24  			flagsets,
    25  			&rags.Rag{
    26  				Name:     flagutil.StoreFlag,
    27  				Usage:    "Name of the Store",
    28  				Value:    &rags.String{Var: &storeName},
    29  				Required: true,
    30  			},
    31  			&rags.Rag{
    32  				Name:     flagutil.BannerFlag,
    33  				Usage:    "Banner name",
    34  				Value:    &rags.String{Var: &bannerName},
    35  				Required: true,
    36  			},
    37  		),
    38  
    39  		Exec: func(_ context.Context, _ []string) error {
    40  			//validates required field value, value cannot be empty or space
    41  			if err := flagutil.ValidateRequiredFlags(cmd.Rags); err != nil {
    42  				return err
    43  			}
    44  
    45  			registrar, err := constructors.BuildRegistrar(cmd.Rags)
    46  			if err != nil {
    47  				return err
    48  			}
    49  
    50  			reqCtx, cancelReq := context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
    51  			defer cancelReq()
    52  
    53  			cluster, err := registrar.GetCluster(reqCtx, storeName, bannerName)
    54  			if err != nil {
    55  				return err
    56  			}
    57  
    58  			reqCtx, cancelReq = context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
    59  			defer cancelReq()
    60  
    61  			config, err := registrar.GetClusterConfig(reqCtx, cluster.ClusterEdgeID)
    62  			if err != nil {
    63  				fmt.Println("error in retrieval of the cluster config")
    64  				return err
    65  			}
    66  
    67  			marshalledOutput, err := json.MarshalIndent(config, "", "  ")
    68  			if err != nil {
    69  				return err
    70  			}
    71  			fmt.Println(string(marshalledOutput))
    72  
    73  			return nil
    74  		},
    75  	}
    76  	return cmd
    77  }
    78  

View as plain text