Alon Bar-Lev has uploaded a new change for review.

Change subject: packaging: upgrade: rewrite rollbackAvailable
......................................................................

packaging: upgrade: rewrite rollbackAvailable

So far the query of local cache was for any package of this name.

Query the local for specific versions for each package that is marked as
'installed' in transaction.

This will have more chance to avoid rollback errors.

Change-Id: Ia9fff6270cd26f8ccbac1fcd07e38bb0b4397a09
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M packaging/fedora/setup/engine-upgrade.py
1 file changed, 7 insertions(+), 38 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/10/10310/1

diff --git a/packaging/fedora/setup/engine-upgrade.py 
b/packaging/fedora/setup/engine-upgrade.py
index ed218c8..d93d49e 100755
--- a/packaging/fedora/setup/engine-upgrade.py
+++ b/packaging/fedora/setup/engine-upgrade.py
@@ -24,25 +24,6 @@
 MAINTENANCE_TASKS_WAIT_PERIOD_MINUTES = MAINTENANCE_TASKS_WAIT_PERIOD / 60
 MAINTENANCE_TASKS_CYCLES = 20
 
-#TODO: Work with a real list here
-RPM_LIST = """
-ovirt-engine
-ovirt-engine-backend
-ovirt-engine-config
-ovirt-engine-dbscripts
-ovirt-engine-genericapi
-ovirt-engine-notification-service
-ovirt-engine-restapi
-ovirt-engine-setup
-ovirt-engine-tools-common
-ovirt-engine-userportal
-ovirt-engine-webadmin-portal
-ovirt-image-uploader
-ovirt-iso-uploader
-ovirt-log-collector
-vdsm-bootstrap
-"""
-
 RPM_BACKEND = "ovirt-engine-backend"
 RPM_DBSCRIPTS = "ovirt-engine-dbscripts"
 RPM_SETUP = "ovirt-engine-setup"
@@ -334,26 +315,14 @@
     def rollbackAvailable(self, packages):
         logging.debug("Yum rollback-avail started")
 
-        # Get All available packages in yum
-        rpms = RPM_LIST.split()
-        pkgs = [
-            x['display_name'] for x in
-            self._miniyum.queryLocalCachePackages(patterns=rpms)
-        ]
-        logging.debug("%s Packages available in yum:"%(len(pkgs)))
-        logging.debug(pkgs)
-
         # Verify all installed packages available in yum
-        # self.ipackages is populated in updateAvailable
-        name_packages = [p['name'] for p in packages]
-        for installed in [
-            x['display_name'] for x in
-            self._miniyum.queryPackages(patterns=rpms)
-            if x['operation'] == 'installed'
-        ]:
-            if installed in name_packages and not installed not in pkgs:
-                logging.debug("%s not available in yum"%(installed))
-                return False
+        for package in packages:
+            for query in 
self._miniyum.queryPackages(patterns=[package['name']]):
+                if query['operation'] == 'installed':
+                    logging.debug("Checking package %s", query['display_name'])
+                    if not 
self._miniyum.queryLocalCachePackages(patterns=[query['display_name']]):
+                        logging.debug("package %s not available in cache" % 
query['display_name'])
+                        return False
 
         logging.debug("Yum rollback-avail completed successfully")
         return True


--
To view, visit http://gerrit.ovirt.org/10310
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia9fff6270cd26f8ccbac1fcd07e38bb0b4397a09
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to