forked from go-chef/chef
/
association.go
106 lines (93 loc) · 2.91 KB
/
association.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//
// Test the go-chef/chef chef server api /organization/:org/user and /organization/:org/association_requests
// endpoints against a live server
//
package main
import (
"chefapi_test/testapi"
"fmt"
"os"
"github.com/go-chef/chef"
)
// main Exercise the chef server api
func main() {
client := testapi.Client()
// Build stuctures to invite users
invite := chef.Request{
User: "usrinvite",
}
invite2 := chef.Request{
User: "usr2invite",
}
invitemissing := chef.Request{
User: "nouser",
}
add1 := chef.AddNow{
Username: "usradd",
}
// Invite the user to the test org
out, err := client.Associations.Invite(invite)
if err != nil {
fmt.Fprintf(os.Stderr, "Issue inviting a user %+v %+v\n", invite, err)
}
fmt.Printf("Invited user %+v %+v\n", invite, out)
// Invite a second user
out, err = client.Associations.Invite(invite2)
fmt.Printf("Invited user %+v %+v\n", invite2, out)
// fail at inviting a missing user. Should get a 404
out, err = client.Associations.Invite(invitemissing)
if err != nil {
fmt.Fprintf(os.Stderr, "Issue inviting a user %+v %+v\n", invitemissing, err)
}
fmt.Printf("Invited user %+v %+v\n", invitemissing, out)
// Find a pending invitation by user name
id, err := client.Associations.InviteId("usr2invite")
if err != nil {
fmt.Fprintf(os.Stderr, "Issue finding an invitation for usr2invite %+v\n", err)
}
fmt.Printf("Invitation id for usr2invite %+v\n", id)
// Accept the invite for invite2
// outa, err := client.Associations.AcceptInvite(id)
// if err != nil {
// fmt.Fprintf(os.Stderr, "Issue accepting the invitation %+v\n", err)
// }
// fmt.Printf("Accept invitation %+v\n", outa)
// List the invites
outl, err := client.Associations.ListInvites()
if err != nil {
fmt.Fprintf(os.Stderr, "Issue listing the invitations %+v\n", err)
}
fmt.Printf("Invitation list %+v\n", outl)
// Delete the invitations by id
for _, in := range outl {
outd, err := client.Associations.DeleteInvite(in.Id)
if err != nil {
fmt.Fprintf(os.Stderr, "Issue deleting an invitation for %s %+v\n", in.UserName, err)
}
fmt.Printf("Deleted invitation %s for %s %+v\n", in.Id, in.UserName, outd)
}
// Add a user to the test organization
err = client.Associations.Add(add1)
if err != nil {
fmt.Fprintf(os.Stderr, "Issue adding user usradd: %+v\n", err)
}
fmt.Printf("User added: %+v\n", add1)
// List the users
ulist, err := client.Associations.List()
if err != nil {
fmt.Fprintf(os.Stderr, "Issue listing the users: %+v\n", err)
}
fmt.Printf("Users list: %+v\n", ulist)
// Get the user details
uget, err := client.Associations.Get("usradd")
if err != nil {
fmt.Fprintf(os.Stderr, "Issue getting user details: %+v\n", err)
}
fmt.Printf("User details: %+v\n", uget)
// Delete a user for the organization
udel, err := client.Associations.Get("usradd")
if err != nil {
fmt.Fprintf(os.Stderr, "Issue deleting usradd: %+v\n", err)
}
fmt.Printf("User deleted: %+v\n", udel)
}