mirror of
https://github.com/LukeHagar/sailpoint-cli.git
synced 2025-12-09 12:47:44 +00:00
PLTCONN-4069: Refactoring
This commit is contained in:
@@ -14,6 +14,10 @@ import (
|
|||||||
"github.com/sailpoint-oss/sailpoint-cli/internal/client"
|
"github.com/sailpoint-oss/sailpoint-cli/internal/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
accountReadLimit = 8
|
||||||
|
)
|
||||||
|
|
||||||
func newConnValidateCmd(apiClient client.Client) *cobra.Command {
|
func newConnValidateCmd(apiClient client.Client) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "validate",
|
Use: "validate",
|
||||||
@@ -44,11 +48,20 @@ func newConnValidateCmd(apiClient client.Client) *cobra.Command {
|
|||||||
check := cmd.Flags().Lookup("check").Value.String()
|
check := cmd.Flags().Lookup("check").Value.String()
|
||||||
|
|
||||||
isReadOnly, _ := strconv.ParseBool(cmd.Flags().Lookup("read-only").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{
|
valid := connvalidate.NewValidator(connvalidate.Config{
|
||||||
Check: check,
|
Check: check,
|
||||||
ReadOnly: isReadOnly,
|
ReadOnly: isReadOnly,
|
||||||
ReadLimit: isReadLimit,
|
ReadLimit: readLimitVal,
|
||||||
}, cc)
|
}, cc)
|
||||||
|
|
||||||
results, err := valid.Run(ctx)
|
results, err := valid.Run(ctx)
|
||||||
@@ -101,3 +114,14 @@ func newConnValidateCmd(apiClient client.Client) *cobra.Command {
|
|||||||
|
|
||||||
return cmd
|
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
|
||||||
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
@@ -70,7 +69,16 @@ func newConnValidateSourcesCmd(apiClient client.Client) *cobra.Command {
|
|||||||
ctx := cmd.Context()
|
ctx := cmd.Context()
|
||||||
|
|
||||||
endpoint := cmd.Flags().Lookup("conn-endpoint").Value.String()
|
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)
|
listOfSources, err := getSourceFromFile(sourceFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -86,7 +94,7 @@ func newConnValidateSourcesCmd(apiClient client.Client) *cobra.Command {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
res, err := validateConnectors(ctx, apiClient, source, endpoint, isReadLimit)
|
res, err := validateConnectors(ctx, apiClient, source, endpoint, readLimitVal)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -135,7 +143,7 @@ func getSourceFromFile(filePath string) ([]Source, error) {
|
|||||||
return config, err
|
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)
|
resp, err := apiClient.Get(ctx, endpoint)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -175,7 +183,7 @@ func validateConnectors(ctx context.Context, apiClient client.Client, source Sou
|
|||||||
validator := connvalidate.NewValidator(connvalidate.Config{
|
validator := connvalidate.NewValidator(connvalidate.Config{
|
||||||
Check: "",
|
Check: "",
|
||||||
ReadOnly: source.ReadOnly,
|
ReadOnly: source.ReadOnly,
|
||||||
ReadLimit: isReadLimit,
|
ReadLimit: readLimit,
|
||||||
}, cc)
|
}, cc)
|
||||||
|
|
||||||
results, err := validator.Run(ctx)
|
results, err := validator.Run(ctx)
|
||||||
|
|||||||
Reference in New Issue
Block a user