summaryrefslogtreecommitdiffstats
path: root/pyfirstaidkit/plugins.py
diff options
context:
space:
mode:
authorMartin Sivak <msivak@redhat.com>2008-02-11 15:42:20 +0100
committerMartin Sivak <msivak@redhat.com>2008-02-11 15:42:20 +0100
commitaad76695727f22ca6d325245ceb2ff3d1587950b (patch)
tree2cb63f47162dc68a8ecaca8ea4ca396eb69f9152 /pyfirstaidkit/plugins.py
parentd4f3c35acc58dfab3c0432d936333f77c16d695a (diff)
downloadfirstaidkit-aad76695727f22ca6d325245ceb2ff3d1587950b.tar.gz
firstaidkit-aad76695727f22ca6d325245ceb2ff3d1587950b.tar.xz
firstaidkit-aad76695727f22ca6d325245ceb2ff3d1587950b.zip
Add conflict flags to plugin definition
Add "activity" flags, so our "Tracker plugins logic" can work
Diffstat (limited to 'pyfirstaidkit/plugins.py')
-rw-r--r--pyfirstaidkit/plugins.py24
1 files changed, 19 insertions, 5 deletions
diff --git a/pyfirstaidkit/plugins.py b/pyfirstaidkit/plugins.py
index 4cebf6d..2eba8d5 100644
--- a/pyfirstaidkit/plugins.py
+++ b/pyfirstaidkit/plugins.py
@@ -99,6 +99,7 @@ class Plugin(object):
self._dependencies = dependencies
self.provide = dependencies.provide
+ self.unprovide = dependencies.unprovide
self.require = dependencies.require
#
@@ -165,6 +166,11 @@ class Plugin(object):
def getDeps(cls):
"""Return list of conditions required to be set before automated run can be done"""
return set()
+
+ @classmethod
+ def getConflicts(cls):
+ """Return list of conditions required to be UNset before automated run can be done"""
+ return set()
#methods available only for instance, see interpreter.py and dependency stuff there
#def require(self, id)
@@ -337,11 +343,19 @@ returns - True if conditions are fully satisfied
if dependencies:
deps = pklass.getDeps()
- Logger.info("depends on: %s" % (", ".join(deps),))
- for d in deps:
- if not self._deps.require(d):
- Logger.info("depends on usatisfied condition: %s" % (d,))
- return False
+ if len(deps)>0:
+ Logger.info("depends on: %s" % (", ".join(deps),))
+ for d in deps:
+ if not self._deps.require(d):
+ Logger.info("depends on usatisfied condition: %s" % (d,))
+ return False
+ deps = pklass.getConflicts()
+ if len(deps)>0:
+ Logger.info("depends on flags to be unset: %s" % (", ".join(deps),))
+ for d in deps:
+ if self._deps.require(d):
+ Logger.info("depends on condition to be UNset: %s" % (d,))
+ return False
p = pklass(flowName, reporting = self._reporting, dependencies = self._deps)
for (step, rv) in p: #autorun all the needed steps