aboutsummaryrefslogtreecommitdiff
path: root/libpod/runtime.go
diff options
context:
space:
mode:
authorPeter Hunt <pehunt@redhat.com>2019-09-12 14:32:45 -0400
committerPeter Hunt <pehunt@redhat.com>2019-10-28 16:13:58 -0400
commit306f7cb9f56f7807dc125caa2292b653c7fae3ac (patch)
tree2f12bb4ec2f4bd87da4c80e776184481bf6ed78a /libpod/runtime.go
parent57fa6cf756219baa1d8d562906ccf5bbb85380dc (diff)
downloadpodman-306f7cb9f56f7807dc125caa2292b653c7fae3ac.tar.gz
podman-306f7cb9f56f7807dc125caa2292b653c7fae3ac.tar.bz2
podman-306f7cb9f56f7807dc125caa2292b653c7fae3ac.zip
require conmon v2.0.1
Signed-off-by: Peter Hunt <pehunt@redhat.com>
Diffstat (limited to 'libpod/runtime.go')
-rw-r--r--libpod/runtime.go33
1 files changed, 32 insertions, 1 deletions
diff --git a/libpod/runtime.go b/libpod/runtime.go
index 64e645299..93d6fbead 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -87,6 +87,12 @@ var (
// minConmonMajor is the major version required for conmon
minConmonMajor = 2
+
+ // minConmonMinor is the minor version required for conmon
+ minConmonMinor = 0
+
+ // minConmonPatch is the sub-minor version required for conmon
+ minConmonPatch = 1
)
// A RuntimeOption is a functional option which alters the Runtime created by
@@ -807,6 +813,31 @@ func probeConmon(conmonBinary string) error {
if major < minConmonMajor {
return define.ErrConmonOutdated
}
+ if major > minConmonMajor {
+ return nil
+ }
+
+ minor, err := strconv.Atoi(matches[2])
+ if err != nil {
+ return errors.Wrapf(err, versionFormatErr)
+ }
+ if minor < minConmonMinor {
+ return define.ErrConmonOutdated
+ }
+ if minor > minConmonMinor {
+ return nil
+ }
+
+ patch, err := strconv.Atoi(matches[3])
+ if err != nil {
+ return errors.Wrapf(err, versionFormatErr)
+ }
+ if patch < minConmonPatch {
+ return define.ErrConmonOutdated
+ }
+ if patch > minConmonPatch {
+ return nil
+ }
return nil
}
@@ -866,7 +897,7 @@ func makeRuntime(ctx context.Context, runtime *Runtime) (err error) {
if !foundConmon {
if foundOutdatedConmon {
- return errors.Wrapf(define.ErrConmonOutdated, "please update to v%d.0.0 or later", minConmonMajor)
+ return errors.Errorf("please update to v%d.%d.%d or later: %v", minConmonMajor, minConmonMinor, minConmonPatch, define.ErrConmonOutdated)
}
return errors.Wrapf(define.ErrInvalidArg,
"could not find a working conmon binary (configured options: %v)",