Merge pull request #1533 from nak3/fix-error-in-client

tiny: Return fmt.Errorf instead of duplicated error messages
This commit is contained in:
Diptanu Choudhury
2016-08-10 15:13:47 -07:00
committed by GitHub
3 changed files with 14 additions and 28 deletions

View File

@@ -202,12 +202,11 @@ func (r *AllocRunner) saveAllocRunnerState() error {
}
func (r *AllocRunner) saveTaskRunnerState(tr *TaskRunner) error {
var err error
if err = tr.SaveState(); err != nil {
r.logger.Printf("[ERR] client: failed to save state for alloc %s task '%s': %v",
if err := tr.SaveState(); err != nil {
return fmt.Errorf("client: failed to save state for alloc %s task '%s': %v",
r.alloc.ID, tr.task.Name, err)
}
return err
return nil
}
// DestroyState is used to cleanup after ourselves

View File

@@ -344,8 +344,7 @@ func (c *Client) RPC(method string, args interface{}, reply interface{}) error {
// Make the RPC request
if err := c.connPool.RPC(c.Region(), server.Addr, c.RPCMajorVersion(), method, args, reply); err != nil {
c.rpcProxy.NotifyFailedServer(server)
c.logger.Printf("[ERR] client: RPC failed to server %s: %v", server.Addr, err)
return err
return fmt.Errorf("client: RPC failed to server %s: %v", server.Addr, err)
}
return nil
}
@@ -834,10 +833,9 @@ func (c *Client) registerNode() error {
WriteRequest: structs.WriteRequest{Region: c.Region()},
}
var resp structs.NodeUpdateResponse
err := c.RPC("Node.Register", &req, &resp)
if err != nil {
if err := c.RPC("Node.Register", &req, &resp); err != nil {
if time.Since(c.start) > registerErrGrace {
c.logger.Printf("[ERR] client: failed to register node: %v", err)
return fmt.Errorf("client: failed to register node: %v", err)
}
return err
}
@@ -868,10 +866,8 @@ func (c *Client) updateNodeStatus() error {
WriteRequest: structs.WriteRequest{Region: c.Region()},
}
var resp structs.NodeUpdateResponse
err := c.RPC("Node.UpdateStatus", &req, &resp)
if err != nil {
c.logger.Printf("[ERR] client: failed to update status: %v", err)
return err
if err := c.RPC("Node.UpdateStatus", &req, &resp); err != nil {
return fmt.Errorf("client: failed to update status: %v", err)
}
if len(resp.EvalIDs) != 0 {
c.logger.Printf("[DEBUG] client: %d evaluations triggered by node update", len(resp.EvalIDs))

View File

@@ -147,19 +147,15 @@ func (r *TaskRunner) RestoreState() error {
// Restore fields
if snap.Task == nil {
err := fmt.Errorf("task runner snapshot include nil Task")
r.logger.Printf("[ERR] client: %v", err)
return err
return fmt.Errorf("client: task runner snapshot include nil Task")
} else {
r.task = snap.Task
}
r.artifactsDownloaded = snap.ArtifactDownloaded
if err := r.setTaskEnv(); err != nil {
err := fmt.Errorf("failed to create task environment for task %q in allocation %q: %v",
return fmt.Errorf("client: failed to create task environment for task %q in allocation %q: %v",
r.task.Name, r.alloc.ID, err)
r.logger.Printf("[ERR] client: %s", err)
return err
}
// Restore the driver
@@ -233,17 +229,14 @@ func (r *TaskRunner) setTaskEnv() error {
// createDriver makes a driver for the task
func (r *TaskRunner) createDriver() (driver.Driver, error) {
if r.taskEnv == nil {
err := fmt.Errorf("task environment not made for task %q in allocation %q", r.task.Name, r.alloc.ID)
return nil, err
return nil, fmt.Errorf("task environment not made for task %q in allocation %q", r.task.Name, r.alloc.ID)
}
driverCtx := driver.NewDriverContext(r.task.Name, r.config, r.config.Node, r.logger, r.taskEnv)
driver, err := driver.NewDriver(r.task.Driver, driverCtx)
if err != nil {
err = fmt.Errorf("failed to create driver '%s' for alloc %s: %v",
return nil, fmt.Errorf("client: failed to create driver '%s' for alloc %s: %v",
r.task.Driver, r.alloc.ID, err)
r.logger.Printf("[ERR] client: %s", err)
return nil, err
}
return driver, err
}
@@ -471,17 +464,15 @@ func (r *TaskRunner) startTask() error {
// Create a driver
driver, err := r.createDriver()
if err != nil {
r.logger.Printf("[ERR] client: failed to create driver of task '%s' for alloc '%s': %v",
return fmt.Errorf("client: failed to create driver of task '%s' for alloc '%s': %v",
r.task.Name, r.alloc.ID, err)
return err
}
// Start the job
handle, err := driver.Start(r.ctx, r.task)
if err != nil {
r.logger.Printf("[ERR] client: failed to start task '%s' for alloc '%s': %v",
return fmt.Errorf("client: failed to start task '%s' for alloc '%s': %v",
r.task.Name, r.alloc.ID, err)
return err
}
r.handleLock.Lock()