Bump github.com/heketi/heketi to c2e2a4ab7ab9

This commit is contained in:
Jordan Liggitt
2019-09-17 15:37:14 -04:00
parent 24b1e7f27f
commit a1b31aaf74
10 changed files with 42 additions and 37 deletions

View File

@@ -16,7 +16,6 @@ import (
"bytes"
"encoding/json"
"net/http"
"time"
"github.com/heketi/heketi/pkg/glusterfs/api"
"github.com/heketi/heketi/pkg/utils"
@@ -52,7 +51,7 @@ func (c *Client) BlockVolumeCreate(request *api.BlockVolumeCreateRequest) (
return nil, utils.GetErrorFromResponse(r)
}
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return nil, err
}
@@ -148,7 +147,7 @@ func (c *Client) BlockVolumeDelete(id string) error {
return utils.GetErrorFromResponse(r)
}
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return err
}

View File

@@ -34,8 +34,9 @@ const (
RETRY_COUNT = 6
// default delay values
MIN_DELAY = 10
MAX_DELAY = 30
MIN_DELAY = 10
MAX_DELAY = 30
POLL_DELAY = 400 // milliseconds
)
type ClientTLSOptions struct {
@@ -49,8 +50,10 @@ type ClientTLSOptions struct {
type ClientOptions struct {
RetryEnabled bool
RetryCount int
// control waits between retries
// control waits between retries (seconds)
RetryMinDelay, RetryMaxDelay int
// control wait time while polling for responses (milliseconds)
PollDelay int
}
// Client object
@@ -75,6 +78,14 @@ var defaultClientOptions = ClientOptions{
RetryCount: RETRY_COUNT,
RetryMinDelay: MIN_DELAY,
RetryMaxDelay: MAX_DELAY,
PollDelay: POLL_DELAY,
}
// DefaultClientOptions returns a ClientOptions type with all the fields
// initialized to the default values used internally by the new-client
// functions.
func DefaultClientOptions() ClientOptions {
return defaultClientOptions
}
// NewClient creates a new client to access a Heketi server
@@ -195,6 +206,11 @@ func (c *Client) checkRedirect(req *http.Request, via []*http.Request) error {
return c.setToken(req)
}
func (c *Client) pollResponse(r *http.Response) (*http.Response, error) {
return c.waitForResponseWithTimer(
r, time.Millisecond*time.Duration(c.opts.PollDelay))
}
// Wait for the job to finish, waiting waitTime on every loop
func (c *Client) waitForResponseWithTimer(r *http.Response,
waitTime time.Duration) (*http.Response, error) {

View File

@@ -17,7 +17,6 @@ import (
"encoding/json"
"io"
"net/http"
"time"
"github.com/heketi/heketi/pkg/glusterfs/api"
"github.com/heketi/heketi/pkg/utils"
@@ -54,7 +53,7 @@ func (c *Client) DeviceAdd(request *api.DeviceAddRequest) error {
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return err
}
@@ -138,7 +137,7 @@ func (c *Client) DeviceDeleteWithOptions(
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return err
}
@@ -184,7 +183,7 @@ func (c *Client) DeviceState(id string,
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return err
}
@@ -220,7 +219,7 @@ func (c *Client) DeviceResync(id string) error {
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Millisecond*250)
r, err = c.pollResponse(r)
if err != nil {
return err
}

View File

@@ -16,7 +16,6 @@ import (
"bytes"
"encoding/json"
"net/http"
"time"
"github.com/heketi/heketi/pkg/glusterfs/api"
"github.com/heketi/heketi/pkg/utils"
@@ -54,7 +53,7 @@ func (c *Client) NodeAdd(request *api.NodeAddRequest) (*api.NodeInfoResponse, er
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Millisecond*250)
r, err = c.pollResponse(r)
if err != nil {
return nil, err
}
@@ -131,7 +130,7 @@ func (c *Client) NodeDelete(id string) error {
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Millisecond*250)
r, err = c.pollResponse(r)
if err != nil {
return err
}
@@ -175,7 +174,7 @@ func (c *Client) NodeState(id string, request *api.StateRequest) error {
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return err
}

View File

@@ -16,7 +16,6 @@ import (
"bytes"
"encoding/json"
"net/http"
"time"
"github.com/heketi/heketi/pkg/glusterfs/api"
"github.com/heketi/heketi/pkg/utils"
@@ -151,7 +150,7 @@ func (c *Client) PendingOperationCleanUp(
// AND that the rest async framework in heketi needs to be
// polled in order to remove things from its map, the traditional
// poll server after request behavior is retained here.
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return err
}

View File

@@ -16,7 +16,6 @@ import (
"bytes"
"encoding/json"
"net/http"
"time"
"github.com/heketi/heketi/pkg/glusterfs/api"
"github.com/heketi/heketi/pkg/utils"
@@ -57,7 +56,7 @@ func (c *Client) VolumeCreate(request *api.VolumeCreateRequest) (
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return nil, err
}
@@ -111,7 +110,7 @@ func (c *Client) VolumeSetBlockRestriction(id string, request *api.VolumeBlockRe
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return nil, err
}
@@ -165,7 +164,7 @@ func (c *Client) VolumeExpand(id string, request *api.VolumeExpandRequest) (
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return nil, err
}
@@ -277,7 +276,7 @@ func (c *Client) VolumeDelete(id string) error {
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return err
}
@@ -319,7 +318,7 @@ func (c *Client) VolumeClone(id string, request *api.VolumeCloneRequest) (*api.V
}
// Wait for response
r, err = c.waitForResponseWithTimer(r, time.Second)
r, err = c.pollResponse(r)
if err != nil {
return nil, err
}

View File

@@ -21,7 +21,7 @@ import (
"regexp"
"sort"
"github.com/go-ozzo/ozzo-validation"
validation "github.com/go-ozzo/ozzo-validation"
"github.com/go-ozzo/ozzo-validation/is"
)
@@ -181,6 +181,8 @@ type DeviceInfo struct {
Device
Storage StorageSize `json:"storage"`
Id string `json:"id"`
Paths []string `json:"paths,omitempty"`
PvUUID string `json:"pv_uuid,omitempty"`
}
type DeviceInfoResponse struct {