From fb40b1b31b0348190de5ed9c2c8cf15756ba4cf8 Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Tue, 30 Jun 2015 14:31:20 +0200
Subject: [PATCH] Prefer dnf to yum, make metadata checks after 60 s

---
 src/mio/yum.py | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/mio/yum.py b/src/mio/yum.py
index dca98f9..c74a5a3 100755
--- a/src/mio/yum.py
+++ b/src/mio/yum.py
@@ -60,7 +60,8 @@ def conf(path):
                "tolerant=1",
                "exactarch=1",
                "obsoletes=1",
-               "installonly_limit=8" ]
+               "installonly_limit=8",
+               "metadata_expire=60" ]
 
     dir = yumdir(path)
     for m in mio.filecache.expand_mirror(dir):
@@ -85,18 +86,26 @@ def run(path, rpm, exclude):
     else:
         verb = mio.log.verbosity - 2
 
+    # Use dnf in preference of yum
+    if os.access('/usr/bin/dnf', os.X_OK):
+        CMD = '/usr/bin/dnf'
+    else:
+        CMD = '/usr/bin/yum'
+
+
     # Do an update of already installed packages, this has
     # to be done before the install, because outdated packages
     # need to be updated before the install, or we might get
     # a conflict.
     exclude_arg = map(lambda s: "-x %s" % s, exclude)
-    update = "yum -c %s -e %s -d %s -y update %s" % (f.name, verb, verb,
-                                                     " ".join(exclude_arg))
+    update = "%s -c %s -e %s -d %s -y update %s" % (
+        CMD, f.name, verb, verb, "".join(exclude_arg))
     mio.log.log(NORMAL, update)
     result = mio.daemon_cage.system(update)
 
     # Install new packages
-    install = "yum -c %s -e %s -d %s -y install" % (f.name, verb, verb)
+    install = "%s -c %s -e %s -d %s -y install" % (
+        CMD, f.name, verb, verb)
     i = 0
     for p in rpm:
         i += 1
-- 
GitLab