github.com/go-chef/chef@v0.30.1/testapi/client.go (about) 1 package testapi 2 3 import ( 4 "fmt" 5 "github.com/go-chef/chef" 6 "os" 7 "strings" 8 ) 9 10 // client test the chef api 11 func ApiClient() { 12 // Use the default test org 13 client := Client(nil) 14 15 // List initial clients 16 clientList, err := client.Clients.List() 17 if err != nil { 18 fmt.Fprintln(os.Stderr, "Couldn't list clients: ", err) 19 } 20 clientfold := strings.Replace(fmt.Sprintf("%+v", clientList), "\n", "", -1) 21 fmt.Printf("List initial clients %+v\n", clientfold) 22 23 // Define a Client object 24 client1 := chef.ApiNewClient{ 25 Name: "client1", 26 CreateKey: true, 27 Validator: false, 28 } 29 fmt.Printf("Define client1 %+v\n", client1) 30 31 // Define another Client object 32 client2 := chef.ApiNewClient{ 33 ClientName: "client2", 34 CreateKey: false, 35 Validator: true, 36 } 37 fmt.Printf("Define client2 %+v\n", client2) 38 39 // Create 40 clientResult, err := client.Clients.Create(client1) 41 if err != nil { 42 fmt.Fprintln(os.Stderr, "Couldn't create client client1. ", err) 43 } 44 clientresf := strings.Replace(fmt.Sprintf("%+v", clientResult), "\n", "", -1) 45 fmt.Printf("Added client1 %+v\n", clientresf) 46 47 clientResult, err = client.Clients.Create(client2) 48 if err != nil { 49 fmt.Fprintln(os.Stderr, "Couldn't create client client2. ", err) 50 } 51 clientresf = strings.Replace(fmt.Sprintf("%+v", clientResult), "\n", "", -1) 52 fmt.Printf("Added client2 %+v\n", clientResult) 53 54 // List clients 55 clientList, err = client.Clients.List() 56 if err != nil { 57 fmt.Fprintln(os.Stderr, "Couldn't list clients: ", err) 58 } 59 clientfold = strings.Replace(fmt.Sprintf("%+v", clientList), "\n", "", -1) 60 fmt.Printf("List clients after adding %+v\n", clientfold) 61 62 // Create a second time expect 409 63 clientResult, err = client.Clients.Create(client1) 64 if err != nil { 65 fmt.Fprintln(os.Stderr, "Couldn't recreate client client1. ", err) 66 } 67 cerr, err := chef.ChefError(err) 68 if cerr != nil { 69 fmt.Fprintln(os.Stderr, "Couldn't recreate client client1. Code", cerr.StatusCode()) 70 fmt.Fprintln(os.Stderr, "Couldn't recreate client client1. Msg", cerr.StatusMsg()) 71 fmt.Fprintln(os.Stderr, "Couldn't recreate client client1. Text", string(cerr.StatusText())) 72 } 73 fmt.Printf("Added client1 %+v\n", clientResult) 74 75 // Read client1 information 76 serverClient, err := client.Clients.Get("client1") 77 if err != nil { 78 fmt.Fprintln(os.Stderr, "Couldn't get client: ", err) 79 } 80 fmt.Printf("Get client1 %+v\n", serverClient) 81 82 serverClient, err = client.Clients.Get("client2") 83 if err != nil { 84 fmt.Fprintln(os.Stderr, "Couldn't get client2: ", err) 85 } 86 fmt.Printf("Get client2 %+v\n", serverClient) 87 88 // update client - change the client name 89 client1 = chef.ApiNewClient{ 90 Name: "clientchanged", 91 ClientName: "clientchanged", 92 Validator: true, 93 } 94 updateClient, err := client.Clients.Update("client1", client1) 95 if err != nil { 96 fmt.Fprintln(os.Stderr, "Couldn't update client: ", err) 97 } 98 fmt.Printf("Update client1 %+v\n", updateClient) 99 100 // update client - change the validator status 101 client2 = chef.ApiNewClient{ 102 Validator: false, 103 } 104 updateClient, err = client.Clients.Update("client2", client2) 105 if err != nil { 106 fmt.Fprintln(os.Stderr, "Couldn't update client: ", err) 107 } 108 fmt.Printf("Update client2 %+v\n", updateClient) 109 110 // Info after update 111 serverClient, err = client.Clients.Get("clientchanged") 112 if err != nil { 113 fmt.Fprintln(os.Stderr, "Couldn't get client: ", err) 114 } 115 fmt.Printf("Get client1 after update %+v\n", serverClient) 116 117 // Delete clients ignoring errors :) 118 err = client.Clients.Delete("clientchanged") 119 fmt.Printf("Delete client1 %+v\n", err) 120 err = client.Clients.Delete("client2") 121 fmt.Printf("Delete client2 %+v\n", err) 122 123 // List clients 124 clientList, err = client.Clients.List() 125 if err != nil { 126 fmt.Fprintln(os.Stderr, "Couldn't list clients: ", err) 127 } 128 clientfold = strings.Replace(fmt.Sprintf("%+v", clientList), "\n", "", -1) 129 fmt.Printf("List clients after cleanup %+v\n", clientfold) 130 }