Skip to content

Commit

Permalink
team-data
Browse files Browse the repository at this point in the history
  • Loading branch information
kosta709 committed Jul 27, 2020
1 parent b2a7e54 commit c294d76
Show file tree
Hide file tree
Showing 3 changed files with 167 additions and 0 deletions.
72 changes: 72 additions & 0 deletions codefresh/data_account.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package codefresh

import (
"fmt"
cfClient "github.com/codefresh-io/terraform-provider-codefresh/client"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)

func dataSourceAccount() *schema.Resource {
return &schema.Resource{
Read: dataSourceAccountRead,
Schema: map[string]*schema.Schema{
"_id": {
Type: schema.TypeString,
Optional: true,
},
"name": {
Type: schema.TypeString,
Optional: true,
},
"admins": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
}
}


func dataSourceAccountRead(d *schema.ResourceData, meta interface{}) error {


client := meta.(*cfClient.Client)
var account *cfClient.Account
var err error

if _id, _idOk := d.GetOk("_id"); _idOk {
account, err = client.GetAccountByID(_id.(string))
} else if name, nameOk := d.GetOk("name"); nameOk {
account, err = client.GetAccountByName(name.(string))
} else {
return fmt.Errorf("data.codefresh_account - must specify _id or name")
}
if err != nil {
return err
}

if account == nil {
return fmt.Errorf("data.codefresh_account - cannot find account")
}

return mapDataAccountToResource(account, d)

}

func mapDataAccountToResource(account *cfClient.Account, d *schema.ResourceData) error {

if account == nil || account.ID == "" {
return fmt.Errorf("data.codefresh_account - failed to mapDataAccountToResource")
}
d.SetId(account.ID)

d.Set("_id", account.ID)
d.Set("name", account.Name)
d.Set("admins", account.Admins)

return nil
}

94 changes: 94 additions & 0 deletions codefresh/data_team.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package codefresh

import (
"fmt"
cfClient "github.com/codefresh-io/terraform-provider-codefresh/client"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)

func dataSourceTeam() *schema.Resource {
return &schema.Resource{
Read: dataSourceTeamRead,
Schema: map[string]*schema.Schema{
"_id": {
Type: schema.TypeString,
Optional: true,
},
"name": {
Type: schema.TypeString,
Optional: true,
},
"account_id": {
Type: schema.TypeString,
Optional: true,
},
"type": {
Type: schema.TypeString,
Optional: true,
},
"users": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"tags": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
}
}


func dataSourceTeamRead(d *schema.ResourceData, meta interface{}) error {


client := meta.(*cfClient.Client)
var team *cfClient.Team
var err error

if _id, _idOk := d.GetOk("_id"); _idOk {
team, err = client.GetTeamByID(_id.(string))
} else if name, nameOk := d.GetOk("name"); nameOk {
// accountID, accountOk := d.GetOk("account_id");
team, err = client.GetTeamByName(name.(string))
}

if err != nil {
return err
}

if team == nil {
return fmt.Errorf("data.codefresh_team - cannot find team")
}

return mapDataTeamToResource(team, d)

}

func mapDataTeamToResource(team *cfClient.Team, d *schema.ResourceData) error {

if team == nil || team.ID == "" {
return fmt.Errorf("data.codefresh_team - failed to mapDataTeamToResource")
}
d.SetId(team.ID)

d.Set("_id", team.ID)
d.Set("account_id", team.Account)
d.Set("type", team.Type)

var users []string
for _, user := range team.Users {
users = append(users, user.ID)
}
d.Set("users", users)
d.Set("tags", team.Tags)

return nil
}

1 change: 1 addition & 0 deletions codefresh/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ func Provider() *schema.Provider {
"codefresh_user": dataSourceUser(),
"codefresh_idps": dataSourceIdps(),
"codefresh_account": dataSourceAccount(),
"codefresh_team": dataSourceTeam(),
},
ResourcesMap: map[string]*schema.Resource{
"codefresh_project": resourceProject(),
Expand Down

0 comments on commit c294d76

Please sign in to comment.