Skip to content

Commit

Permalink
Add support for resource gocd_auth_config
Browse files Browse the repository at this point in the history
  • Loading branch information
nikhilsbhat committed Dec 30, 2022
1 parent 2655a8f commit 861a98e
Show file tree
Hide file tree
Showing 9 changed files with 253 additions and 137 deletions.
8 changes: 8 additions & 0 deletions examples/authorization_configuration.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
resource "gocd_auth_config" "password_file_config" {
profile_id = "admin_new"
plugin_id = "cd.go.authentication.passwordfile"
properties {
key = "PasswordFilePath"
value = "/Users/nikhil.bhat/idfc/gocd-setup/.gocdadmin2"
}
}
44 changes: 22 additions & 22 deletions gocd/cluster_profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,36 +63,36 @@ func clusterProfile() *schema.Resource {
func resourceClusterProfileCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
defaultConfig := meta.(gocd.GoCd)

if d.IsNewResource() {
id := d.Id()

if len(id) == 0 {
newID, err := utils.GetRandomID()
if err != nil {
d.SetId("")

return diag.Errorf("errored while fetching randomID %v", err)
}
id = newID
}
if !d.IsNewResource() {
return nil
}

cfg := gocd.CommonConfig{
ID: utils.String(d.Get(utils.TerraformResourceProfileID)),
PluginID: utils.String(d.Get(utils.TerraformPluginID)),
Properties: getPluginConfiguration(d.Get(utils.TerraformProperties)),
}
id := d.Id()

_, err := defaultConfig.CreateClusterProfile(cfg)
if len(id) == 0 {
newID, err := utils.GetRandomID()
if err != nil {
return diag.Errorf("creating cluster profile %s setting for plugin %s errored with %v", cfg.ID, cfg.PluginID, err)
d.SetId("")

return diag.Errorf("errored while fetching randomID %v", err)
}
id = newID
}

d.SetId(id)
cfg := gocd.CommonConfig{
ID: utils.String(d.Get(utils.TerraformResourceProfileID)),
PluginID: utils.String(d.Get(utils.TerraformPluginID)),
Properties: getPluginConfiguration(d.Get(utils.TerraformProperties)),
}

return resourceClusterProfileRead(ctx, d, meta)
_, err := defaultConfig.CreateClusterProfile(cfg)
if err != nil {
return diag.Errorf("creating cluster profile %s setting for plugin %s errored with %v", cfg.ID, cfg.PluginID, err)
}

return nil
d.SetId(id)

return resourceClusterProfileRead(ctx, d, meta)
}

func resourceClusterProfileRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
Expand Down
66 changes: 30 additions & 36 deletions gocd/config_repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package gocd

import (
"context"
"encoding/json"
"fmt"
"log"

Expand Down Expand Up @@ -65,51 +64,46 @@ func configRepository() *schema.Resource {
func resourceConfigRepoCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
defaultConfig := meta.(gocd.GoCd)

if d.IsNewResource() {
id := d.Id()

if len(id) == 0 {
newID, err := utils.GetRandomID()
if err != nil {
d.SetId("")
if !d.IsNewResource() {
return nil
}

return diag.Errorf("errored while fetching randomID %v", err)
}
id = newID
}
id := d.Id()

rules, err := getRules(d.Get(utils.TerraformResourceRules))
if err != nil {
return diag.Errorf("reading rules errored with %v", err)
}
material := getMaterials(d.Get(utils.TerraformResourceMaterial))
if len(id) == 0 {
newID, err := utils.GetRandomID()
if err != nil {
return diag.Errorf("reading material errored with %v", err)
}
d.SetId("")

cfg := gocd.ConfigRepo{
ID: utils.String(d.Get(utils.TerraformResourceProfileID)),
PluginID: utils.String(d.Get(utils.TerraformPluginID)),
Configuration: getPluginConfiguration(d.Get(utils.TerraformResourceConfiguration)),
Rules: rules,
Material: material,
return diag.Errorf("errored while fetching randomID %v", err)
}
id = newID
}

out, err := json.Marshal(cfg)
if err != nil {
log.Fatal(err)
}
log.Printf("ConfigRepo Object: %s", string(out))
if err = defaultConfig.CreateConfigRepo(cfg); err != nil {
return diag.Errorf("creating config repo %s errored with %v", cfg.ID, err)
}
rules, err := getRules(d.Get(utils.TerraformResourceRules))
if err != nil {
return diag.Errorf("reading rules errored with %v", err)
}
material := getMaterials(d.Get(utils.TerraformResourceMaterial))
if err != nil {
return diag.Errorf("reading material errored with %v", err)
}

d.SetId(id)
cfg := gocd.ConfigRepo{
ID: utils.String(d.Get(utils.TerraformResourceProfileID)),
PluginID: utils.String(d.Get(utils.TerraformPluginID)),
Configuration: getPluginConfiguration(d.Get(utils.TerraformResourceConfiguration)),
Rules: rules,
Material: material,
}

return resourceConfigRepoRead(ctx, d, meta)
if err = defaultConfig.CreateConfigRepo(cfg); err != nil {
return diag.Errorf("creating config repo %s errored with %v", cfg.ID, err)
}

return nil
d.SetId(id)

return resourceConfigRepoRead(ctx, d, meta)
}

func resourceConfigRepoRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
Expand Down
3 changes: 1 addition & 2 deletions gocd/elastic_agent_profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,7 @@ func resourceElasticAgentProfileUpdate(ctx context.Context, d *schema.ResourceDa
func resourceElasticAgentProfileDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
defaultConfig := meta.(gocd.GoCd)

id := d.Id()
if len(id) == 0 {
if id := d.Id(); len(id) == 0 {
return diag.Errorf("resource with the ID '%s' not found", id)
}

Expand Down
4 changes: 2 additions & 2 deletions gocd/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ func Provider() *schema.Provider {
},

ResourcesMap: map[string]*schema.Resource{
"gocd_plugins": resourcePlugins(),
// "gocd_auth": resourceAuth(),
"gocd_plugins": resourcePlugins(),
"gocd_auth_config": resourceAuthConfig(),
"gocd_cluster_profile": clusterProfile(),
"gocd_elastic_agent_profile": elasticAgentProfile(),
"gocd_config_repository": configRepository(),
Expand Down
53 changes: 0 additions & 53 deletions gocd/resource_auth.go

This file was deleted.

Loading

0 comments on commit 861a98e

Please sign in to comment.