Skip to content

Commit

Permalink
Refactor variable names, remove Exists, add more Context functions
Browse files Browse the repository at this point in the history
  • Loading branch information
robmonte committed Aug 31, 2022
1 parent fde9c15 commit 94e2a0e
Showing 1 changed file with 20 additions and 41 deletions.
61 changes: 20 additions & 41 deletions vault/resource_consul_secret_backend_role.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,9 @@ func consulSecretBackendRoleResource() *schema.Resource {
CreateContext: consulSecretBackendRoleWrite,
ReadContext: ReadContextWrapper(consulSecretBackendRoleRead),
UpdateContext: consulSecretBackendRoleWrite,
Delete: consulSecretBackendRoleDelete,
Exists: consulSecretBackendRoleExists,
DeleteContext: consulSecretBackendRoleDelete,
Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
StateContext: schema.ImportStatePassthroughContext,
},

Schema: map[string]*schema.Schema{
Expand Down Expand Up @@ -142,9 +141,9 @@ func consulSecretBackendRoleGetBackend(d *schema.ResourceData) string {
}

func consulSecretBackendRoleWrite(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := provider.GetClient(d, meta)
if err != nil {
return diag.FromErr(err)
client, e := provider.GetClient(d, meta)
if e != nil {
return diag.FromErr(e)
}

name := d.Get("name").(string)
Expand Down Expand Up @@ -175,12 +174,12 @@ func consulSecretBackendRoleWrite(ctx context.Context, d *schema.ResourceData, m
"node_identities": nodeIdentities,
}

checkConsulPolicies, _, err := semver.GreaterThanOrEqual(ctx, client, consts.VaultVersion11)
useAPIVer2, _, err := semver.GreaterThanOrEqual(ctx, client, consts.VaultVersion11)
if err != nil {
return diag.FromErr(err)
}

if checkConsulPolicies {
if useAPIVer2 {
data["consul_policies"] = policies
} else {
data["policies"] = policies
Expand Down Expand Up @@ -211,9 +210,9 @@ func consulSecretBackendRoleWrite(ctx context.Context, d *schema.ResourceData, m
}

func consulSecretBackendRoleRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, err := provider.GetClient(d, meta)
if err != nil {
return diag.FromErr(err)
client, e := provider.GetClient(d, meta)
if e != nil {
return diag.FromErr(e)
}

upgradeOldID(d)
Expand Down Expand Up @@ -272,20 +271,20 @@ func consulSecretBackendRoleRead(ctx context.Context, d *schema.ResourceData, me
}

// Check whether Vault will return consul_policies or policies based on its version.
hasNewPolicies, _, err := semver.GreaterThanOrEqual(ctx, client, consts.VaultVersion11)
useAPIVer2, _, err := semver.GreaterThanOrEqual(ctx, client, consts.VaultVersion11)
if err != nil {
return diag.FromErr(err)
}

returnedPoliciesVal := "consul_policies"
if _, ok := d.GetOk("policies"); ok || !hasNewPolicies {
returnedPoliciesVal = "policies"
policyField := "consul_policies"
if _, ok := d.GetOk("policies"); ok || !useAPIVer2 {
policyField = "policies"
}

if hasNewPolicies {
params["consul_policies"] = returnedPoliciesVal
if useAPIVer2 {
params["consul_policies"] = policyField
} else {
params["policies"] = returnedPoliciesVal
params["policies"] = policyField
}

for k, v := range params {
Expand All @@ -308,43 +307,23 @@ func consulSecretBackendRoleRead(ctx context.Context, d *schema.ResourceData, me
return nil
}

func consulSecretBackendRoleDelete(d *schema.ResourceData, meta interface{}) error {
func consulSecretBackendRoleDelete(_ context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, e := provider.GetClient(d, meta)
if e != nil {
return e
return diag.FromErr(e)
}

path := d.Id()

log.Printf("[DEBUG] Deleting Consul backend role at %q", path)

if _, err := client.Logical().Delete(path); err != nil {
return fmt.Errorf("error deleting Consul backend role at %q: %s", path, err)
return diag.Errorf("error deleting Consul backend role at %q: %s", path, err)
}
log.Printf("[DEBUG] Deleted Consul backend role at %q", path)
return nil
}

func consulSecretBackendRoleExists(d *schema.ResourceData, meta interface{}) (bool, error) {
client, e := provider.GetClient(d, meta)
if e != nil {
return false, e
}

upgradeOldID(d)

path := d.Id()

log.Printf("[DEBUG] Checking Consul secrets backend role at %q", path)

secret, err := client.Logical().Read(path)
if err != nil {
return false, fmt.Errorf("error reading role configuration for %q: %s", path, err)
}

return secret != nil, nil
}

func upgradeOldID(d *schema.ResourceData) {
// Upgrade old "{backend},{name}" ID format
id := d.Id()
Expand Down

0 comments on commit 94e2a0e

Please sign in to comment.