Skip to content

Commit 9f81008

Browse files
committed
add support for POST method in CloudMonkey
1 parent 2d641ae commit 9f81008

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

cmd/network.go

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -227,13 +227,22 @@ func NewAPIRequest(r *Request, api string, args []string, isAsync bool) (map[str
227227
requestURL := fmt.Sprintf("%s?%s", r.Config.ActiveProfile.URL, encodedParams)
228228
config.Debug("NewAPIRequest API request URL:", requestURL)
229229

230-
response, err := r.Client().Get(requestURL)
231-
if err != nil {
232-
return nil, err
230+
var response *http.Response
231+
if params.Has("password") || params.Has("userdata") {
232+
requestURL = fmt.Sprintf("%s", r.Config.ActiveProfile.URL)
233+
response, err = r.Client().PostForm(requestURL, params)
234+
if err != nil {
235+
return nil, err
236+
}
237+
} else {
238+
response, err = r.Client().Get(requestURL)
239+
if err != nil {
240+
return nil, err
241+
}
233242
}
234243
config.Debug("NewAPIRequest response status code:", response.StatusCode)
235244

236-
if response != nil && response.StatusCode == http.StatusUnauthorized {
245+
if response.StatusCode == http.StatusUnauthorized {
237246
r.Client().Jar, _ = cookiejar.New(nil)
238247
sessionKey, err := Login(r)
239248
if err != nil {
@@ -243,9 +252,18 @@ func NewAPIRequest(r *Request, api string, args []string, isAsync bool) (map[str
243252
params.Add("sessionkey", sessionKey)
244253
requestURL = fmt.Sprintf("%s?%s", r.Config.ActiveProfile.URL, encodeRequestParams(params))
245254
config.Debug("NewAPIRequest API request URL:", requestURL)
246-
response, err = r.Client().Get(requestURL)
247-
if err != nil {
248-
return nil, err
255+
256+
if params.Has("password") || params.Has("userdata") {
257+
requestURL = fmt.Sprintf("%s", r.Config.ActiveProfile.URL)
258+
response, err = r.Client().PostForm(requestURL, params)
259+
if err != nil {
260+
return nil, err
261+
}
262+
} else {
263+
response, err = r.Client().Get(requestURL)
264+
if err != nil {
265+
return nil, err
266+
}
249267
}
250268
}
251269

0 commit comments

Comments
 (0)