From d288fdc7f2df8d5746a7a181f94ade3266ef0bb9 Mon Sep 17 00:00:00 2001 From: dwertent Date: Wed, 16 Feb 2022 13:59:29 +0200 Subject: [PATCH] set tenant only when submiiting data --- cautils/customerloader.go | 12 +++++++----- cautils/getter/armoapiutils.go | 17 ++++++++++++----- clihandler/clidownload.go | 4 ++++ clihandler/clilist.go | 1 + clihandler/clisubmit.go | 3 ++- clihandler/cmd/rbac.go | 1 + clihandler/cmd/results.go | 1 + 7 files changed, 28 insertions(+), 11 deletions(-) diff --git a/cautils/customerloader.go b/cautils/customerloader.go index adec4e65..174b3380 100644 --- a/cautils/customerloader.go +++ b/cautils/customerloader.go @@ -118,6 +118,7 @@ func NewLocalConfig(backendAPI getter.IBackend, customerGUID, clusterName string logger.L().Error(err.Error()) } } + lc.UpdateCachedConfig() return lc } @@ -228,11 +229,12 @@ func NewClusterConfig(k8s *k8sinterface.KubernetesApi, backendAPI getter.IBacken c.backendAPI.SetClientID(c.configObj.ClientID) c.backendAPI.SetSecretKey(c.configObj.SecretKey) - if c.configObj.AccountID != "" { - if err := c.SetTenant(); err != nil { - logger.L().Error(err.Error()) - } - } + // if c.configObj.AccountID != "" { + // if err := c.SetTenant(); err != nil { + // logger.L().Error(err.Error()) + // } + // } + c.UpdateCachedConfig() return c } diff --git a/cautils/getter/armoapiutils.go b/cautils/getter/armoapiutils.go index 39674036..0b213b48 100644 --- a/cautils/getter/armoapiutils.go +++ b/cautils/getter/armoapiutils.go @@ -17,7 +17,7 @@ func (armoAPI *ArmoAPI) getFrameworkURL(frameworkName string) string { u.Host = armoAPI.apiURL u.Path = "api/v1/armoFrameworks" q := u.Query() - q.Add("customerGUID", armoAPI.accountID) + q.Add("customerGUID", armoAPI.getCustomerGUIDFallBack()) if isNativeFramework(frameworkName) { q.Add("frameworkName", strings.ToUpper(frameworkName)) } else { @@ -35,7 +35,7 @@ func (armoAPI *ArmoAPI) getListFrameworkURL() string { u.Host = armoAPI.apiURL u.Path = "api/v1/armoFrameworks" q := u.Query() - q.Add("customerGUID", armoAPI.accountID) + q.Add("customerGUID", armoAPI.getCustomerGUIDFallBack()) u.RawQuery = q.Encode() return u.String() @@ -47,7 +47,7 @@ func (armoAPI *ArmoAPI) getExceptionsURL(clusterName string) string { u.Path = "api/v1/armoPostureExceptions" q := u.Query() - q.Add("customerGUID", armoAPI.accountID) + q.Add("customerGUID", armoAPI.getCustomerGUIDFallBack()) // if clusterName != "" { // TODO - fix customer name support in Armo BE // q.Add("clusterName", clusterName) // } @@ -63,7 +63,7 @@ func (armoAPI *ArmoAPI) postExceptionsURL() string { u.Path = "api/v1/postureExceptionPolicy" q := u.Query() - q.Add("customerGUID", armoAPI.accountID) + q.Add("customerGUID", armoAPI.getCustomerGUIDFallBack()) u.RawQuery = q.Encode() return u.String() @@ -76,7 +76,7 @@ func (armoAPI *ArmoAPI) getAccountConfig(clusterName string) string { u.Path = "api/v1/armoCustomerConfiguration" q := u.Query() - q.Add("customerGUID", armoAPI.accountID) + q.Add("customerGUID", armoAPI.getCustomerGUIDFallBack()) if clusterName != "" { // TODO - fix customer name support in Armo BE q.Add("clusterName", clusterName) } @@ -156,3 +156,10 @@ func (armoAPI *ArmoAPI) appendAuthHeaders(headers map[string]string) { headers["Cookie"] = fmt.Sprintf("auth=%s", armoAPI.authCookie) } } + +func (armoAPI *ArmoAPI) getCustomerGUIDFallBack() string { + if armoAPI.accountID != "" { + return armoAPI.accountID + } + return "11111111-1111-1111-1111-111111111111" +} diff --git a/clihandler/clidownload.go b/clihandler/clidownload.go index 35c1fdf9..ec9b02d3 100644 --- a/clihandler/clidownload.go +++ b/clihandler/clidownload.go @@ -77,6 +77,7 @@ func downloadArtifacts(downloadInfo *cautils.DownloadInfo) error { func downloadConfigInputs(downloadInfo *cautils.DownloadInfo) error { tenant := getTenantConfig(downloadInfo.Account, "", getKubernetesApi()) + controlsInputsGetter := getConfigInputsGetter(downloadInfo.Name, tenant.GetAccountID(), nil) controlInputs, err := controlsInputsGetter.GetControlsInputs(tenant.GetClusterName()) if err != nil { @@ -97,6 +98,7 @@ func downloadConfigInputs(downloadInfo *cautils.DownloadInfo) error { func downloadExceptions(downloadInfo *cautils.DownloadInfo) error { var err error tenant := getTenantConfig(downloadInfo.Account, "", getKubernetesApi()) + exceptionsGetter := getExceptionsGetter("") exceptions := []armotypes.PostureExceptionPolicy{} if tenant.GetAccountID() != "" { @@ -120,6 +122,7 @@ func downloadExceptions(downloadInfo *cautils.DownloadInfo) error { func downloadFramework(downloadInfo *cautils.DownloadInfo) error { tenant := getTenantConfig(downloadInfo.Account, "", getKubernetesApi()) + g := getPolicyGetter(nil, tenant.GetAccountID(), true, nil) if downloadInfo.Name == "" { @@ -156,6 +159,7 @@ func downloadFramework(downloadInfo *cautils.DownloadInfo) error { func downloadControl(downloadInfo *cautils.DownloadInfo) error { tenant := getTenantConfig(downloadInfo.Account, "", getKubernetesApi()) + g := getPolicyGetter(nil, tenant.GetAccountID(), false, nil) if downloadInfo.Name == "" { diff --git a/clihandler/clilist.go b/clihandler/clilist.go index dda856ee..128537fc 100644 --- a/clihandler/clilist.go +++ b/clihandler/clilist.go @@ -49,6 +49,7 @@ func listFrameworks(listPolicies *cliobjects.ListPolicies) ([]string, error) { func listControls(listPolicies *cliobjects.ListPolicies) ([]string, error) { tenant := getTenantConfig(listPolicies.Account, "", getKubernetesApi()) // change k8sinterface + g := getPolicyGetter(nil, tenant.GetAccountID(), false, nil) l := getter.ListName if listPolicies.ListIDs { diff --git a/clihandler/clisubmit.go b/clihandler/clisubmit.go index 2f19aff0..c8370335 100644 --- a/clihandler/clisubmit.go +++ b/clihandler/clisubmit.go @@ -33,7 +33,8 @@ func SubmitExceptions(accountID, excPath string) error { logger.L().Info("submitting exceptions", helpers.String("path", excPath)) // load cached config - getTenantConfig(accountID, "", getKubernetesApi()) + tenantConfig := getTenantConfig(accountID, "", getKubernetesApi()) + tenantConfig.SetTenant() // load exceptions from file loader := getter.NewLoadPolicy([]string{excPath}) diff --git a/clihandler/cmd/rbac.go b/clihandler/cmd/rbac.go index 938b73b9..8d8fbec0 100644 --- a/clihandler/cmd/rbac.go +++ b/clihandler/cmd/rbac.go @@ -23,6 +23,7 @@ var rabcCmd = &cobra.Command{ // get config clusterConfig := getTenantConfig(submitInfo.Account, "", k8s) + clusterConfig.SetTenant() // list RBAC rbacObjects := cautils.NewRBACObjects(rbacscanner.NewRbacScannerFromK8sAPI(k8s, clusterConfig.GetAccountID(), clusterConfig.GetClusterName())) diff --git a/clihandler/cmd/results.go b/clihandler/cmd/results.go index ccf2d536..d6b25cfa 100644 --- a/clihandler/cmd/results.go +++ b/clihandler/cmd/results.go @@ -63,6 +63,7 @@ var resultsCmd = &cobra.Command{ // get config clusterConfig := getTenantConfig(submitInfo.Account, "", k8s) + clusterConfig.SetTenant() resultsObjects := NewResultsObject(clusterConfig.GetAccountID(), clusterConfig.GetClusterName(), args[0])