Skip to content

Commit

Permalink
testing schema for creating user
Browse files Browse the repository at this point in the history
  • Loading branch information
Melissa Meyer committed Jan 11, 2018
1 parent 52e52d1 commit 7d64cac
Show file tree
Hide file tree
Showing 5 changed files with 145 additions and 9 deletions.
12 changes: 5 additions & 7 deletions main.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package main

import (
"github.com/articulate/terraform-provider-okta/okta"
"github.com/hashicorp/terraform/plugin"
"github.com/articulate/terraform-provider-okta/okta"
"github.com/hashicorp/terraform/plugin"
)

var Version string

func main() {
plugin.Serve(&plugin.ServeOpts{
ProviderFunc: okta.Provider,
})
plugin.Serve(&plugin.ServeOpts{
ProviderFunc: okta.Provider,
})
}
54 changes: 54 additions & 0 deletions okta/groups.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package okta

import (
"encoding/json"
"log"
"time"

"github.com/articulate/oktasdk-go/okta"
"github.com/hashicorp/terraform/helper/schema"
)

func Users() *schema.Resource {
return &schema.Resource{
Create: UserCreate,
Read: UserRead,
Update: UserUpdate,
Delete: UserDelete,

Schema: map[string]*schema.Schema{
"name": &schema.Schema{
Type: schema.TypeString,
Required: true,
Description: "Group name",
},
"description": &schema.Schema{
Type: schema.TypeString,
Optional: true,
Description: "Group description",
},

"group_id": &schema.Schema{
Type: schema.TypeString,
Computed: true,
Description: "Group ID (generated)",
},
},
}
}

func GroupCreate(d *schema.ResourceData, m interface{}) error {
return nil
}

func GroupRead(d *schema.ResourceData, m interface{}) error {
return nil
}

func GroupUpdate(d *schema.ResourceData, m interface{}) error {
return nil
}

func GroupDelete(d *schema.ResourceData, m interface{}) error {
return nil
}
8 changes: 6 additions & 2 deletions okta/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package okta
import (
"log"

"github.com/chrismalek/oktasdk-go/okta"
"github.com/articulate/oktasdk-go/okta"
"github.com/hashicorp/terraform/helper/schema"
"github.com/hashicorp/terraform/terraform"
)
Expand Down Expand Up @@ -31,7 +31,11 @@ func Provider() terraform.ResourceProvider {
},
},

ResourcesMap: map[string]*schema.Resource{},
ResourcesMap: map[string]*schema.Resource{
"groups": Groups(),
"users": Users(),

},

ConfigureFunc: providerConfigure,
}
Expand Down
4 changes: 4 additions & 0 deletions okta/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ func TestProvider(t *testing.T) {
}
}

func TestProviderImpl(t *testing.T) {
var _ terraform.ResourceProvider = Provider()
}

func testAccPreCheck(t *testing.T) {
if v := os.Getenv("OKTA_ORGANIZATION"); v == "" {
t.Fatal("OKTA_ORGANIZATION must be set for acceptance tests")
Expand Down
76 changes: 76 additions & 0 deletions okta/users.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package okta

import (
"encoding/json"
"log"
"time"

"github.com/articulate/oktasdk-go/okta"
"github.com/hashicorp/terraform/helper/schema"
)

func Users() *schema.Resource {
return &schema.Resource{
Create: UserCreate,
Read: UserRead,
Update: UserUpdate,
Delete: UserDelete,

Schema: map[string]*schema.Schema{
"firstname": &schema.Schema{
Type: schema.TypeString,
Required: true,
Description: "User first name",
},
"lastname": &schema.Schema{
Type: schema.TypeString,
Required: true,
Description: "User last name",
},

"email": &schema.Schema{
Type: schema.TypeString,
Required: true,
Description: "User email address",
},
},
}
}

func UserCreate(d *schema.ResourceData, m interface{}) error {
log.Println("[INFO] Creating User")
client := okta.NewClient(nil, orgName, apiToken, isProductionOKTAORG)
log.Println("[INFO] Client Base URL: %v\n\n", client.BaseURL)

newUserTemplate := client.Users.NewUser()
newUserTemplate.Profile.FirstName = d.Get("firstname").(string)
newUserTemplate.Profile.LastName = d.Get("lastname").(string) + time.Now().Format("2006-01-02")
newUserTemplate.Profile.Login = d.Get("email").(string)
newUserTemplate.Profile.Email = newUserTemplate.Profile.Login

jsonTest, _ := json.Marshal(newUserTemplate)

log.Println("[INFO] User Json\n\t%v\n\n", string(jsonTest))
createNewUserAsActive := false

newUser, _, err := client.Users.Create(newUserTemplate, createNewUserAsActive)

if err != nil {

log.Println("[ERROR] Error Creating User:\n \t%v", err)
return
}
printUser(*newUser)
}

func UserRead(d *schema.ResourceData, m interface{}) error {
return nil
}

func UserUpdate(d *schema.ResourceData, m interface{}) error {
return nil
}

func UserDelete(d *schema.ResourceData, m interface{}) error {
return nil
}

0 comments on commit 7d64cac

Please sign in to comment.