Skip to content
This repository has been archived by the owner on Jun 27, 2021. It is now read-only.

Commit

Permalink
update travis
Browse files Browse the repository at this point in the history
  • Loading branch information
DeviaVir committed Oct 17, 2018
1 parent b291c9f commit fcfabac
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 20 deletions.
8 changes: 3 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,16 @@ services:
- docker
language: go
go:
- 1.9
- 1.9
- 1.11

before_install:
# Setup dependency management tool
- curl -L -s https://github.com/golang/dep/releases/download/v0.4.1/dep-linux-amd64 -o $GOPATH/bin/dep
- chmod +x $GOPATH/bin/dep

install:
- go get github.com/hashicorp/terraform
- dep ensure

script:
- 'if [ "${TRAVIS_BUILD_DIR}" != "${GOPATH}/src/github.com/DeviaVir/terraform-provider-gsuite" ]; then ln -s "${TRAVIS_BUILD_DIR}" "${GOPATH}/src/github.com/DeviaVir/terraform-provider-gsuite"; fi'
- dep ensure -v
- make test
- make
27 changes: 12 additions & 15 deletions gsuite/resource_group_members.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func resourceGroupMembersRead(d *schema.ResourceData, meta interface{}) error {

groupEmail := d.Id()

members, err := getApiMembers(groupEmail, config)
members, err := getAPIMembers(groupEmail, config)

if err != nil {
return err
Expand Down Expand Up @@ -79,8 +79,8 @@ func resourceGroupMembersDelete(d *schema.ResourceData, meta interface{}) error
log.Printf("[DEBUG]: Deleting gsuite_group_members")
config := meta.(*Config)

for _, raw_member := range d.Get("member").(*schema.Set).List() {
member := raw_member.(map[string]interface{})
for _, rawMember := range d.Get("member").(*schema.Set).List() {
member := rawMember.(map[string]interface{})
deleteMember(member["email"].(string), d.Id(), config)
}

Expand Down Expand Up @@ -110,8 +110,8 @@ func membersToCfg(members []*directory.Member) []map[string]interface{} {
}

func resourceMembers(d *schema.ResourceData) (members []map[string]interface{}) {
for _, raw_member := range d.Get("member").(*schema.Set).List() {
member := raw_member.(map[string]interface{})
for _, rawMember := range d.Get("member").(*schema.Set).List() {
member := rawMember.(map[string]interface{})
members = append(members, member)
}
return members
Expand All @@ -125,7 +125,7 @@ func createOrUpdateGroupMembers(d *schema.ResourceData, meta interface{}) (strin
cfgMembers := resourceMembers(d)

// Get members from API
apiMembers, err := getApiMembers(groupEmail, config)
apiMembers, err := getAPIMembers(groupEmail, config)
if err != nil {
return groupEmail, fmt.Errorf("Error updating memberships: %v", err)
}
Expand Down Expand Up @@ -203,7 +203,7 @@ func reconcileMembers(d *schema.ResourceData, cfgMembers, apiMembers []map[strin
}

// Upsert memberships which are present in the config, but not in the api
for email, _ := range cfgMap {
for email := range cfgMap {
err := upsertMember(email, gid, cfgMap[email]["role"].(string), config)
if err != nil {
return err
Expand All @@ -213,7 +213,7 @@ func reconcileMembers(d *schema.ResourceData, cfgMembers, apiMembers []map[strin
}

// Retrieve a group's members from the API
func getApiMembers(groupEmail string, config *Config) ([]*directory.Member, error) {
func getAPIMembers(groupEmail string, config *Config) ([]*directory.Member, error) {
// Get members from the API
groupMembers := make([]*directory.Member, 0)
token := ""
Expand All @@ -239,6 +239,7 @@ func getApiMembers(groupEmail string, config *Config) ([]*directory.Member, erro
}

func upsertMember(email, groupEmail, role string, config *Config) error {
var err error
groupMember := &directory.Member{
Role: strings.ToUpper(role),
Email: strings.ToLower(email),
Expand All @@ -247,10 +248,8 @@ func upsertMember(email, groupEmail, role string, config *Config) error {
// Check if the email address belongs to a user, or to a group
// we need to make sure, because we need to use different logic
var isGroup bool
var group *directory.Group
var err error
err = retry(func() error {
group, err = config.directory.Groups.Get(email).Do()
_, err := config.directory.Groups.Get(email).Do()
return err
})
isGroup = true
Expand All @@ -264,10 +263,8 @@ func upsertMember(email, groupEmail, role string, config *Config) error {
}

// Grab the group as a directory member of the current group
var currentMember *directory.Member
var err error
err = retry(func() error {
currentMember, err = config.directory.Members.Get(groupEmail, email).Do()
_, err := config.directory.Members.Get(groupEmail, email).Do()
return err
})

Expand Down Expand Up @@ -309,7 +306,7 @@ func upsertMember(email, groupEmail, role string, config *Config) error {
// When a user does not exist, the API returns a 400 "memberKey, required"
// Returning a friendly message
if gerr, ok := err.(*googleapi.Error); ok && (gerr.Errors[0].Reason == "required" && gerr.Code == 400) {
return fmt.Errorf("Error adding groupMember %s. Please make sure the user exists beforehand.", email)
return fmt.Errorf("error adding groupMember %s, please make sure the user exists beforehand", email)
}
return err
})
Expand Down

0 comments on commit fcfabac

Please sign in to comment.