-
Notifications
You must be signed in to change notification settings - Fork 65
/
Copy pathclient.go
130 lines (114 loc) · 3.8 KB
/
client.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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package testapi
import (
"fmt"
"github.com/go-chef/chef"
"os"
"strings"
)
// client test the chef api
func ApiClient() {
// Use the default test org
client := Client(nil)
// List initial clients
clientList, err := client.Clients.List()
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't list clients: ", err)
}
clientfold := strings.Replace(fmt.Sprintf("%+v", clientList), "\n", "", -1)
fmt.Printf("List initial clients %+v\n", clientfold)
// Define a Client object
client1 := chef.ApiNewClient{
Name: "client1",
CreateKey: true,
Validator: false,
}
fmt.Printf("Define client1 %+v\n", client1)
// Define another Client object
client2 := chef.ApiNewClient{
ClientName: "client2",
CreateKey: false,
Validator: true,
}
fmt.Printf("Define client2 %+v\n", client2)
// Create
clientResult, err := client.Clients.Create(client1)
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't create client client1. ", err)
}
clientresf := strings.Replace(fmt.Sprintf("%+v", clientResult), "\n", "", -1)
fmt.Printf("Added client1 %+v\n", clientresf)
clientResult, err = client.Clients.Create(client2)
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't create client client2. ", err)
}
clientresf = strings.Replace(fmt.Sprintf("%+v", clientResult), "\n", "", -1)
fmt.Printf("Added client2 %+v\n", clientResult)
// List clients
clientList, err = client.Clients.List()
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't list clients: ", err)
}
clientfold = strings.Replace(fmt.Sprintf("%+v", clientList), "\n", "", -1)
fmt.Printf("List clients after adding %+v\n", clientfold)
// Create a second time expect 409
clientResult, err = client.Clients.Create(client1)
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't recreate client client1. ", err)
}
cerr, err := chef.ChefError(err)
if cerr != nil {
fmt.Fprintln(os.Stderr, "Couldn't recreate client client1. Code", cerr.StatusCode())
fmt.Fprintln(os.Stderr, "Couldn't recreate client client1. Msg", cerr.StatusMsg())
fmt.Fprintln(os.Stderr, "Couldn't recreate client client1. Text", string(cerr.StatusText()))
}
fmt.Printf("Added client1 %+v\n", clientResult)
// Read client1 information
serverClient, err := client.Clients.Get("client1")
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't get client: ", err)
}
fmt.Printf("Get client1 %+v\n", serverClient)
serverClient, err = client.Clients.Get("client2")
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't get client2: ", err)
}
fmt.Printf("Get client2 %+v\n", serverClient)
// update client - change the client name
client1 = chef.ApiNewClient{
Name: "clientchanged",
ClientName: "clientchanged",
Validator: true,
}
updateClient, err := client.Clients.Update("client1", client1)
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't update client: ", err)
}
fmt.Printf("Update client1 %+v\n", updateClient)
// update client - change the validator status
client2 = chef.ApiNewClient{
Validator: false,
}
updateClient, err = client.Clients.Update("client2", client2)
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't update client: ", err)
}
fmt.Printf("Update client2 %+v\n", updateClient)
// Info after update
serverClient, err = client.Clients.Get("clientchanged")
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't get client: ", err)
}
fmt.Printf("Get client1 after update %+v\n", serverClient)
// Delete clients ignoring errors :)
err = client.Clients.Delete("clientchanged")
fmt.Printf("Delete client1 %+v\n", err)
err = client.Clients.Delete("client2")
fmt.Printf("Delete client2 %+v\n", err)
// List clients
clientList, err = client.Clients.List()
if err != nil {
fmt.Fprintln(os.Stderr, "Couldn't list clients: ", err)
}
clientfold = strings.Replace(fmt.Sprintf("%+v", clientList), "\n", "", -1)
fmt.Printf("List clients after cleanup %+v\n", clientfold)
}