github.com/pachyderm/pachyderm@v1.13.4/src/server/pps/pps.go (about)

     1  package pps
     2  
     3  import (
     4  	"fmt"
     5  	"regexp"
     6  
     7  	"github.com/pachyderm/pachyderm/src/client/pkg/grpcutil"
     8  	"github.com/pachyderm/pachyderm/src/client/pps"
     9  )
    10  
    11  // ErrJobFinished represents a finished job error.
    12  type ErrJobFinished struct {
    13  	Job *pps.Job
    14  }
    15  
    16  func (e ErrJobFinished) Error() string {
    17  	return fmt.Sprintf("job %v has already finished", e.Job.ID)
    18  }
    19  
    20  var (
    21  	jobFinishedRe = regexp.MustCompile("job [^ ]+ has already finished")
    22  )
    23  
    24  // IsJobFinishedErr returns true if 'err' has an error message that matches ErrJobFinished
    25  func IsJobFinishedErr(err error) bool {
    26  	if err == nil {
    27  		return false
    28  	}
    29  	return jobFinishedRe.MatchString(grpcutil.ScrubGRPC(err).Error())
    30  }