Skip to content

Commit

Permalink
Fix Reset Service, add reset_test.go
Browse files Browse the repository at this point in the history
Signed-off-by: IntBoat <intboat@gmail.com>
  • Loading branch information
IntBoat committed Jan 28, 2022
1 parent 83254bb commit 8ee7e81
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 14 deletions.
13 changes: 4 additions & 9 deletions reset.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type ResetService interface {
Get(serverNumber int) (*Reset, *http.Response, error)
// Reset Execute reset on specific server
// See: https://robot.your-server.de/doc/webservice/en.html#post-reset-server-number
Reset(req *ResetCreateRequest) (*Reset, *http.Response, error)
Reset(req *ResetRequest) (*ResetResponse, *http.Response, error)
}

type ResetServiceImpl struct {
Expand Down Expand Up @@ -47,16 +47,11 @@ func (s *ResetServiceImpl) Get(serverNumber int) (*Reset, *http.Response, error)
return data.Reset, resp, err
}

func (s *ResetServiceImpl) Reset(req *ResetCreateRequest) (*Reset, *http.Response, error) {
func (s *ResetServiceImpl) Reset(req *ResetRequest) (*ResetResponse, *http.Response, error) {
path := fmt.Sprintf("/reset/%d", req.ServerNumber)

data := dataResetCreateResponse{}
data := dataResetResponse{}
resp, err := s.client.Call(http.MethodPost, path, req, &data)

out := &Reset{
ServerIP: data.Reset.ServerIP,
ServerNumber: data.Reset.ServerNumber,
Type: []string{data.Reset.Type},
}
return out, resp, err
return data.Reset, resp, err
}
38 changes: 38 additions & 0 deletions reset_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package hetzner

import "testing"

func TestResetList(t *testing.T) {
reset, _, err := client.Reset.List()
if err != nil {
t.Error(err)
return
}

t.Logf("Found %d server reset options", len(reset))
}

func TestResetGet(t *testing.T) {
reset, _, err := client.Reset.Get(testingServer.ServerNumber)
if err != nil {
t.Error(err)
return
}

t.Logf("Reset Options: %+v", reset)
}

func TestResetReset(t *testing.T) {
//reset, _, err := client.Reset.Reset(
// &ResetRequest{
// ServerNumber: testingServer.ServerNumber,
// Type: "hw",
// },
//)
//if err != nil {
// t.Error(err)
// return
//}
//
//t.Logf("%+v", reset)
}
17 changes: 12 additions & 5 deletions reset_types.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package hetzner

// Reset contains information about reset service
type Reset struct {
ServerIP string `json:"server_ip"`
ServerIpv6Net string `json:"server_ipv6_net"`
Expand All @@ -8,12 +9,18 @@ type Reset struct {
OperatingStatus string `json:"operating_status"`
}

type ResetCreateRequest struct {
// ResetRequest requested information for ResetService.Reset
type ResetRequest struct {
ServerNumber int
Type string `url:"type"`
// Reset type
// Send CTRL+ALT+DEL to the server: sw
// Press hardware reset button: hw
// order a manual hardware reset: man
Type string `url:"type"`
}

type ResetCreateResponse struct {
// ResetResponse contains information about current reset status
type ResetResponse struct {
ServerIP string `json:"server_ip"`
ServerIpv6Net string `json:"server_ipv6_net"`
ServerNumber int `json:"server_number"`
Expand All @@ -24,6 +31,6 @@ type dataReset struct {
Reset *Reset `json:"reset"`
}

type dataResetCreateResponse struct {
Reset *ResetCreateResponse `json:"reset"`
type dataResetResponse struct {
Reset *ResetResponse `json:"reset"`
}

0 comments on commit 8ee7e81

Please sign in to comment.