mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-25 15:50:20 +00:00
cleanup: refactor deeply nested if statement in vault_tokens.go
Refactored deeply nested if statement in vault_tokens.go to reduce cognitive complexity by adding fetchTenantConfig function. Signed-off-by: Rakshith R <rar@redhat.com>
This commit is contained in:
parent
2d1a572d11
commit
d4cfd7bef9
@ -216,20 +216,12 @@ func initVaultTokensKMS(args KMSInitializerArgs) (EncryptionKMS, error) {
|
|||||||
// fetch the configuration for the tenant
|
// fetch the configuration for the tenant
|
||||||
if args.Tenant != "" {
|
if args.Tenant != "" {
|
||||||
kms.Tenant = args.Tenant
|
kms.Tenant = args.Tenant
|
||||||
tenantsMap, ok := config["tenants"]
|
tenantConfig, found := fetchTenantConfig(config, args.Tenant)
|
||||||
if ok {
|
if found {
|
||||||
// tenants is a map per tenant, containing key/values
|
// override connection details from the tenant
|
||||||
tenants, ok := tenantsMap.(map[string]map[string]interface{})
|
err = kms.parseConfig(tenantConfig)
|
||||||
if ok {
|
if err != nil {
|
||||||
// get the map for the tenant of the current operation
|
return nil, err
|
||||||
tenantConfig, ok := tenants[args.Tenant]
|
|
||||||
if ok {
|
|
||||||
// override connection details from the tenant
|
|
||||||
err = kms.parseConfig(tenantConfig)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -506,3 +498,22 @@ func (kms *VaultTokensKMS) parseTenantConfig() error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fetchTenantConfig fetches the configuration for the tenant if it exists.
|
||||||
|
func fetchTenantConfig(config map[string]interface{}, tenant string) (map[string]interface{}, bool) {
|
||||||
|
tenantsMap, ok := config["tenants"]
|
||||||
|
if !ok {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
// tenants is a map per tenant, containing key/values
|
||||||
|
tenants, ok := tenantsMap.(map[string]map[string]interface{})
|
||||||
|
if !ok {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
// get the map for the tenant of the current operation
|
||||||
|
tenantConfig, ok := tenants[tenant]
|
||||||
|
if !ok {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
return tenantConfig, true
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user