...

Source file src/edge-infra.dev/pkg/edge/edgecli/commands/banner/securitycompliance/securitycompliance.go

Documentation: edge-infra.dev/pkg/edge/edgecli/commands/banner/securitycompliance

     1  package securitycompliance
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"time"
     7  
     8  	"edge-infra.dev/pkg/edge/api/graph/model"
     9  	"edge-infra.dev/pkg/edge/edgeadmin/registrar"
    10  	"edge-infra.dev/pkg/edge/edgecli"
    11  	"edge-infra.dev/pkg/edge/edgecli/constructors"
    12  	"edge-infra.dev/pkg/edge/edgecli/flagutil"
    13  	"edge-infra.dev/pkg/lib/cli/command"
    14  	"edge-infra.dev/pkg/lib/cli/rags"
    15  )
    16  
    17  // NewCmd command to update banner security compliance
    18  func NewCmd(cfg *edgecli.Config) *command.Command {
    19  	flagsets := append(flagutil.GetCommonFlags(), flagutil.GetConnectionFlags(cfg)...)
    20  	var cmd *command.Command
    21  
    22  	cmd = &command.Command{
    23  		ShortUsage: "edge banner security-compliance",
    24  		ShortHelp:  "Update the banner security compliance",
    25  		Flags: append(flagsets,
    26  			&rags.Rag{
    27  				Name:     flagutil.BannerFlag,
    28  				Value:    &rags.String{},
    29  				Usage:    "Banner name",
    30  				Required: true,
    31  			},
    32  			&rags.Rag{
    33  				Name:     flagutil.OptInEdgeSecurityCompliance,
    34  				Value:    &rags.String{},
    35  				Usage:    "Opt in edge security compliance",
    36  				Required: true,
    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  			updated, err := updateEdgeSecurityCompliance(cmd, registrar)
    51  			if err != nil {
    52  				fmt.Println("failed to update edge security compliance")
    53  				return err
    54  			}
    55  			if updated.StatusCode == 200 {
    56  				fmt.Println("edge security compliance updated")
    57  			} else {
    58  				fmt.Printf("edge security compliance not updated")
    59  			}
    60  
    61  			return nil
    62  		},
    63  	}
    64  	return cmd
    65  }
    66  
    67  func updateEdgeSecurityCompliance(cmd *command.Command, registrar *registrar.Registrar) (*model.EdgeResponsePayload, error) {
    68  	bannerName := flagutil.GetStringFlag(cmd.Rags, flagutil.BannerFlag)
    69  	optIn := flagutil.GetStringFlag(cmd.Rags, flagutil.OptInEdgeSecurityCompliance)
    70  
    71  	reqCtx, cancelReq := context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
    72  	defer cancelReq()
    73  
    74  	updated, err := registrar.UpdateEdgeSecurityCompliance(reqCtx, bannerName, optIn)
    75  	if err != nil {
    76  		return &model.EdgeResponsePayload{}, err
    77  	}
    78  	return updated, nil
    79  }
    80  

View as plain text