Sandro Bonazzola has uploaded a new change for review.

Change subject: packaging: setup: allow external plugins yum locking
......................................................................

packaging: setup: allow external plugins yum locking

Added infrastructure for allowing external plugins to
filter and add packages to version locking transaction.

Change-Id: Ic5a33d3a09e1c5aa9fed8a08d81a4ce583c12797
Bug-Url: https://bugzilla.redhat.com/1011087
Signed-off-by: Sandro Bonazzola <sbona...@redhat.com>
---
M packaging/setup/ovirt_engine_setup/constants.py
M packaging/setup/plugins/ovirt-engine-setup/distro-rpm/packages.py
2 files changed, 30 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/21779/1

diff --git a/packaging/setup/ovirt_engine_setup/constants.py 
b/packaging/setup/ovirt_engine_setup/constants.py
index 64dad78..65dd09a 100644
--- a/packaging/setup/ovirt_engine_setup/constants.py
+++ b/packaging/setup/ovirt_engine_setup/constants.py
@@ -1020,6 +1020,9 @@
     def REQUIRE_ROLLBACK(self):
         return 'OSETUP_RPMDISTRO/requireRollback'
 
+    ADDITIONAL_FILTER_PACKAGES = 'OSETUP_RPMDISTRO/additionalFilterPackages'
+    ADDITIONAL_LOCK_PACKAGES = 'OSETUP_RPMDISTRO/additionalLockPackages'
+
 
 @util.export
 @util.codegen
diff --git a/packaging/setup/plugins/ovirt-engine-setup/distro-rpm/packages.py 
b/packaging/setup/plugins/ovirt-engine-setup/distro-rpm/packages.py
index dd3e42c..c121aba 100644
--- a/packaging/setup/plugins/ovirt-engine-setup/distro-rpm/packages.py
+++ b/packaging/setup/plugins/ovirt-engine-setup/distro-rpm/packages.py
@@ -60,16 +60,21 @@
             if os.path.exists(
                 osetupcons.FileLocations.OVIRT_ENGINE_YUM_VERSIONLOCK
             ):
+                checks = [
+                    osetupcons.Const.ENGINE_PACKAGE_NAME,
+                ] + self.environment[
+                    osetupcons.RPMDistroEnv.ADDITIONAL_FILTER_PACKAGES
+                ]
+
                 with open(
                     osetupcons.FileLocations.OVIRT_ENGINE_YUM_VERSIONLOCK,
                 ) as f:
                     for line in f.read().splitlines():
-                        if line.find(
-                            osetupcons.Const.ENGINE_PACKAGE_NAME
-                        ) == -1:
-                            content.append(line)
-                        else:
-                            modified = True
+                        for check in checks:
+                            if line.find(check) != -1:
+                                continue
+                        content.append(line)
+                        modified = True
             return (modified, content)
 
         @property
@@ -124,7 +129,9 @@
                 args=(
                     self._parent.command.get('rpm'),
                     '-q',
-                ) + osetupcons.Const.RPM_LOCK_LIST,
+                ) + osetupcons.Const.RPM_LOCK_LIST + self.environment[
+                    osetupcons.RPMDistroEnv.ADDITIONAL_LOCK_PACKAGES
+                ],
             )
             changes = []
             for line in out:
@@ -263,6 +270,19 @@
         )[0]
 
     @plugin.event(
+        stage=plugin.Stages.STAGE_INIT,
+    )
+    def _init(self):
+        self.environment.setdefault(
+            osetupcons.RPMDistroEnv.ADDITIONAL_LOCK_PACKAGES,
+            []
+        )
+        self.environment.setdefault(
+            osetupcons.RPMDistroEnv.ADDITIONAL_FILTER_PACKAGES,
+            []
+        )
+
+    @plugin.event(
         stage=plugin.Stages.STAGE_SETUP,
         condition=lambda self: (
             not self.environment[


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic5a33d3a09e1c5aa9fed8a08d81a4ce583c12797
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sandro Bonazzola <sbona...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to