PLTCONN-4069: Refactoring

This commit is contained in:
Megan Tran
2023-11-06 09:56:52 -06:00
parent 1aa83191bc
commit d93ab01925
2 changed files with 39 additions and 7 deletions

View File

@@ -14,6 +14,10 @@ import (
"github.com/sailpoint-oss/sailpoint-cli/internal/client"
)
const (
accountReadLimit = 8
)
func newConnValidateCmd(apiClient client.Client) *cobra.Command {
cmd := &cobra.Command{
Use: "validate",
@@ -44,11 +48,20 @@ func newConnValidateCmd(apiClient client.Client) *cobra.Command {
check := cmd.Flags().Lookup("check").Value.String()
isReadOnly, _ := strconv.ParseBool(cmd.Flags().Lookup("read-only").Value.String())
isReadLimit, _ := strconv.ParseBool(cmd.Flags().Lookup("read-limit").Value.String())
readLimit := cmd.Flags().Lookup("read-limit").Value.String()
readLimitVal := int64(accountReadLimit)
if readLimit != "" {
readLimitVal, err = getReadLimitVal(readLimit)
if err != nil {
return fmt.Errorf("invalid value of readLimit: %v", err)
}
}
valid := connvalidate.NewValidator(connvalidate.Config{
Check: check,
ReadOnly: isReadOnly,
ReadLimit: isReadLimit,
ReadLimit: readLimitVal,
}, cc)
results, err := valid.Run(ctx)
@@ -101,3 +114,14 @@ func newConnValidateCmd(apiClient client.Client) *cobra.Command {
return cmd
}
func getReadLimitVal(readLimit string) (int64, error) {
readLimitVal, err := strconv.ParseInt(readLimit, 10, 64)
if err != nil {
return 0, err
}
if readLimitVal <= 0 {
return 0, fmt.Errorf("readLimit value cannot be smaller than or equal to 0")
}
return readLimitVal, nil
}

View File

@@ -11,7 +11,6 @@ import (
"net/http"
"os"
"os/exec"
"strconv"
"strings"
"syscall"
"time"
@@ -70,7 +69,16 @@ func newConnValidateSourcesCmd(apiClient client.Client) *cobra.Command {
ctx := cmd.Context()
endpoint := cmd.Flags().Lookup("conn-endpoint").Value.String()
isReadLimit, _ := strconv.ParseBool(cmd.Flags().Lookup("read-limit").Value.String())
readLimit := cmd.Flags().Lookup("read-limit").Value.String()
readLimitVal := int64(accountReadLimit)
var err error
if readLimit != "" {
readLimitVal, err = getReadLimitVal(readLimit)
if err != nil {
return fmt.Errorf("invalid value of readLimit: %v", err)
}
}
listOfSources, err := getSourceFromFile(sourceFile)
if err != nil {
@@ -86,7 +94,7 @@ func newConnValidateSourcesCmd(apiClient client.Client) *cobra.Command {
return err
}
res, err := validateConnectors(ctx, apiClient, source, endpoint, isReadLimit)
res, err := validateConnectors(ctx, apiClient, source, endpoint, readLimitVal)
if err != nil {
return err
}
@@ -135,7 +143,7 @@ func getSourceFromFile(filePath string) ([]Source, error) {
return config, err
}
func validateConnectors(ctx context.Context, apiClient client.Client, source Source, endpoint string, isReadLimit bool) (*ValidationResults, error) {
func validateConnectors(ctx context.Context, apiClient client.Client, source Source, endpoint string, readLimit int64) (*ValidationResults, error) {
resp, err := apiClient.Get(ctx, endpoint)
if err != nil {
return nil, err
@@ -175,7 +183,7 @@ func validateConnectors(ctx context.Context, apiClient client.Client, source Sou
validator := connvalidate.NewValidator(connvalidate.Config{
Check: "",
ReadOnly: source.ReadOnly,
ReadLimit: isReadLimit,
ReadLimit: readLimit,
}, cc)
results, err := validator.Run(ctx)