@@ -6,31 +6,23 @@ SPDX-License-Identifier: MPL-2.0
6
6
package clusterclient
7
7
8
8
import (
9
- "bytes"
10
9
"fmt"
11
- "io/ioutil"
12
- "net/http"
13
10
"net/url"
14
11
15
- "github.com/pkg/errors"
16
-
17
- clienterrors "gitlab.eng.vmware.com/olympus/terraform-provider-tanzu/internal/client/errors"
18
12
"gitlab.eng.vmware.com/olympus/terraform-provider-tanzu/internal/client/transport"
19
- "gitlab.eng.vmware.com/olympus/terraform-provider-tanzu/internal/helper"
20
13
clustermodel "gitlab.eng.vmware.com/olympus/terraform-provider-tanzu/internal/models/cluster"
21
14
)
22
15
23
16
// New creates a new cluster resource service API client.
24
- func New (transport * transport.Client , config * transport. Config ) ClientService {
25
- return & Client {transport : transport , config : config }
17
+ func New (transport * transport.Client ) ClientService {
18
+ return & Client {Client : transport }
26
19
}
27
20
28
21
/*
29
22
Client for cluster resource service API.
30
23
*/
31
24
type Client struct {
32
- transport * transport.Client
33
- config * transport.Config
25
+ * transport.Client
34
26
}
35
27
36
28
// ClientService is the interface for Client methods.
@@ -47,73 +39,28 @@ type ClientService interface {
47
39
/*
48
40
ManageV1alpha1ClusterResourceServiceCreate creates a cluster.
49
41
*/
50
- func (a * Client ) ManageV1alpha1ClusterResourceServiceCreate (request * clustermodel.VmwareTanzuManageV1alpha1ClusterRequest ) (* clustermodel.VmwareTanzuManageV1alpha1ClusterResponse , error ) {
51
- requestURL := fmt .Sprintf ("%s%s" , a .config .Host , "/v1alpha1/clusters" )
42
+ func (c * Client ) ManageV1alpha1ClusterResourceServiceCreate (request * clustermodel.VmwareTanzuManageV1alpha1ClusterRequest ) (* clustermodel.VmwareTanzuManageV1alpha1ClusterResponse , error ) {
43
+ response := & clustermodel.VmwareTanzuManageV1alpha1ClusterResponse {}
44
+ err := c .Create ("v1alpha1/clusters" , request , response )
52
45
53
- return a . invokeAction ( http . MethodPost , requestURL , request )
46
+ return response , err
54
47
}
55
48
56
49
/*
57
50
ManageV1alpha1ClusterResourceServiceUpdate updates a cluster.
58
51
*/
59
- func (a * Client ) ManageV1alpha1ClusterResourceServiceUpdate (request * clustermodel.VmwareTanzuManageV1alpha1ClusterRequest ) (* clustermodel.VmwareTanzuManageV1alpha1ClusterResponse , error ) {
60
- requestURL := fmt .Sprintf ("%s%s%s" , a .config .Host , "/v1alpha1/clusters/" , request .Cluster .FullName .Name )
61
-
62
- return a .invokeAction (http .MethodPut , requestURL , request )
63
- }
64
-
65
- func (a * Client ) invokeAction (httpMethodType string , requestURL string , request * clustermodel.VmwareTanzuManageV1alpha1ClusterRequest ) (* clustermodel.VmwareTanzuManageV1alpha1ClusterResponse , error ) {
66
- body , err := request .MarshalBinary ()
67
- if err != nil {
68
- return nil , errors .Wrap (err , "marshall request body" )
69
- }
70
-
71
- headers := a .config .Headers
72
- headers .Set (helper .ContentLengthKey , fmt .Sprintf ("%d" , len (body )))
73
-
74
- var resp * http.Response
75
-
76
- // nolint:bodyclose // response is being closed outside the switch block
77
- switch httpMethodType {
78
- case http .MethodPost :
79
- resp , err = a .transport .Post (requestURL , bytes .NewReader (body ), headers )
80
- if err != nil {
81
- return nil , errors .Wrap (err , "create" )
82
- }
83
- case http .MethodPut :
84
- resp , err = a .transport .Put (requestURL , bytes .NewReader (body ), headers )
85
- if err != nil {
86
- return nil , errors .Wrap (err , "update" )
87
- }
88
- default :
89
- return nil , errors .New ("unsupported http method type invoked" )
90
- }
91
-
92
- defer resp .Body .Close ()
52
+ func (c * Client ) ManageV1alpha1ClusterResourceServiceUpdate (request * clustermodel.VmwareTanzuManageV1alpha1ClusterRequest ) (* clustermodel.VmwareTanzuManageV1alpha1ClusterResponse , error ) {
53
+ response := & clustermodel.VmwareTanzuManageV1alpha1ClusterResponse {}
54
+ requestURL := fmt .Sprintf ("%s/%s" , "v1alpha1/clusters" , request .Cluster .FullName .Name )
55
+ err := c .Update (requestURL , request , response )
93
56
94
- respBody , err := ioutil .ReadAll (resp .Body )
95
- if err != nil {
96
- return nil , errors .Wrapf (err , "read %v response" , httpMethodType )
97
- }
98
-
99
- if resp .StatusCode != http .StatusOK {
100
- return nil , errors .Errorf ("%s tanzu TMC cluster request failed with status : %v, response: %v" , httpMethodType , resp .Status , string (respBody ))
101
- }
102
-
103
- clusterResponse := & clustermodel.VmwareTanzuManageV1alpha1ClusterResponse {}
104
-
105
- err = clusterResponse .UnmarshalBinary (respBody )
106
- if err != nil {
107
- return nil , errors .Wrap (err , "unmarshall" )
108
- }
109
-
110
- return clusterResponse , nil
57
+ return response , err
111
58
}
112
59
113
60
/*
114
61
ManageV1alpha1ClusterResourceServiceDelete deletes a cluster.
115
62
*/
116
- func (a * Client ) ManageV1alpha1ClusterResourceServiceDelete (fn * clustermodel.VmwareTanzuManageV1alpha1ClusterFullName , force string ) error {
63
+ func (c * Client ) ManageV1alpha1ClusterResourceServiceDelete (fn * clustermodel.VmwareTanzuManageV1alpha1ClusterFullName , force string ) error {
117
64
queryParams := url.Values {
118
65
"force" : []string {force },
119
66
}
@@ -126,28 +73,15 @@ func (a *Client) ManageV1alpha1ClusterResourceServiceDelete(fn *clustermodel.Vmw
126
73
queryParams ["fullName.provisionerName" ] = []string {fn .ProvisionerName }
127
74
}
128
75
129
- requestURL := fmt .Sprintf ("%s%s%s ?%s" , a . config . Host , "/ v1alpha1/clusters/ " , fn .Name , queryParams .Encode ())
76
+ requestURL := fmt .Sprintf ("%s/%s ?%s" , " v1alpha1/clusters" , fn .Name , queryParams .Encode ())
130
77
131
- resp , err := a .transport .Delete (requestURL , a .config .Headers )
132
- if err != nil {
133
- return errors .Wrap (err , "delete" )
134
- }
135
-
136
- defer resp .Body .Close ()
137
-
138
- respBody , _ := ioutil .ReadAll (resp .Body )
139
-
140
- if resp .StatusCode != http .StatusOK {
141
- return clienterrors .ErrorWithHTTPCode (resp .StatusCode , errors .Errorf ("delete tanzu TMC cluster request failed with status : %v, response: %v" , resp .Status , string (respBody )))
142
- }
143
-
144
- return nil
78
+ return c .Delete (requestURL )
145
79
}
146
80
147
81
/*
148
82
ManageV1alpha1ClusterResourceServiceGet gets a cluster.
149
83
*/
150
- func (a * Client ) ManageV1alpha1ClusterResourceServiceGet (fn * clustermodel.VmwareTanzuManageV1alpha1ClusterFullName ) (* clustermodel.VmwareTanzuManageV1alpha1ClusterGetClusterResponse , error ) {
84
+ func (c * Client ) ManageV1alpha1ClusterResourceServiceGet (fn * clustermodel.VmwareTanzuManageV1alpha1ClusterFullName ) (* clustermodel.VmwareTanzuManageV1alpha1ClusterGetClusterResponse , error ) {
151
85
queryParams := url.Values {}
152
86
153
87
if fn .ManagementClusterName != "" {
@@ -158,30 +92,9 @@ func (a *Client) ManageV1alpha1ClusterResourceServiceGet(fn *clustermodel.Vmware
158
92
queryParams ["fullName.provisionerName" ] = []string {fn .ProvisionerName }
159
93
}
160
94
161
- requestURL := fmt .Sprintf ("%s%s%s?%s" , a .config .Host , "/v1alpha1/clusters/" , fn .Name , queryParams .Encode ())
162
-
163
- resp , err := a .transport .Get (requestURL , a .config .Headers )
164
- if err != nil {
165
- return nil , errors .Wrap (err , "get request" )
166
- }
167
-
168
- defer resp .Body .Close ()
169
-
170
- respBody , err := ioutil .ReadAll (resp .Body )
171
- if err != nil {
172
- return nil , errors .Wrap (err , "read response" )
173
- }
174
-
175
- if resp .StatusCode != http .StatusOK {
176
- return nil , clienterrors .ErrorWithHTTPCode (resp .StatusCode , errors .Errorf ("get tanzu TMC cluster request failed with status : %v, response: %v" , resp .Status , string (respBody )))
177
- }
178
-
95
+ requestURL := fmt .Sprintf ("%s/%s?%s" , "v1alpha1/clusters" , fn .Name , queryParams .Encode ())
179
96
clusterResponse := & clustermodel.VmwareTanzuManageV1alpha1ClusterGetClusterResponse {}
97
+ err := c .Get (requestURL , clusterResponse )
180
98
181
- err = clusterResponse .UnmarshalBinary (respBody )
182
- if err != nil {
183
- return nil , errors .Wrap (err , "unmarshall" )
184
- }
185
-
186
- return clusterResponse , nil
99
+ return clusterResponse , err
187
100
}
0 commit comments