[VOL-5486] Fix deprecated versions

Change-Id: If0b888d6c2f33b2f415c8b03b08dc994bb3df3f4
Signed-off-by: Abhay Kumar <abhay.kumar@radisys.com>
diff --git a/vendor/github.com/cheggaaa/pb/v3/pool.go b/vendor/github.com/cheggaaa/pb/v3/pool.go
new file mode 100644
index 0000000..69cc825
--- /dev/null
+++ b/vendor/github.com/cheggaaa/pb/v3/pool.go
@@ -0,0 +1,105 @@
+// +build linux darwin freebsd netbsd openbsd solaris dragonfly windows plan9 aix
+
+package pb
+
+import (
+	"io"
+	"sync"
+	"time"
+
+	"github.com/cheggaaa/pb/v3/termutil"
+)
+
+// Create and start new pool with given bars
+// You need call pool.Stop() after work
+func StartPool(pbs ...*ProgressBar) (pool *Pool, err error) {
+	pool = new(Pool)
+	if err = pool.Start(); err != nil {
+		return
+	}
+	pool.Add(pbs...)
+	return
+}
+
+// NewPool initialises a pool with progress bars, but
+// doesn't start it. You need to call Start manually
+func NewPool(pbs ...*ProgressBar) (pool *Pool) {
+	pool = new(Pool)
+	pool.Add(pbs...)
+	return
+}
+
+type Pool struct {
+	Output        io.Writer
+	RefreshRate   time.Duration
+	bars          []*ProgressBar
+	lastBarsCount int
+	shutdownCh    chan struct{}
+	workerCh      chan struct{}
+	m             sync.Mutex
+	finishOnce    sync.Once
+}
+
+// Add progress bars.
+func (p *Pool) Add(pbs ...*ProgressBar) {
+	p.m.Lock()
+	defer p.m.Unlock()
+	for _, bar := range pbs {
+		bar.Set(Static, true)
+		bar.Start()
+		p.bars = append(p.bars, bar)
+	}
+}
+
+func (p *Pool) Start() (err error) {
+	p.RefreshRate = defaultRefreshRate
+	p.shutdownCh, err = termutil.RawModeOn()
+	if err != nil {
+		return
+	}
+	p.workerCh = make(chan struct{})
+	go p.writer()
+	return
+}
+
+func (p *Pool) writer() {
+	var first = true
+	defer func() {
+		if first == false {
+			p.print(false)
+		} else {
+			p.print(true)
+			p.print(false)
+		}
+		close(p.workerCh)
+	}()
+
+	for {
+		select {
+		case <-time.After(p.RefreshRate):
+			if p.print(first) {
+				p.print(false)
+				return
+			}
+			first = false
+		case <-p.shutdownCh:
+			return
+		}
+	}
+}
+
+// Restore terminal state and close pool
+func (p *Pool) Stop() error {
+	p.finishOnce.Do(func() {
+		if p.shutdownCh != nil {
+			close(p.shutdownCh)
+		}
+	})
+
+	// Wait for the worker to complete
+	select {
+	case <-p.workerCh:
+	}
+
+	return termutil.RawModeOff()
+}