summaryrefslogtreecommitdiffstats
path: root/presence/pfpgen.py
diff options
context:
space:
mode:
Diffstat (limited to 'presence/pfpgen.py')
-rwxr-xr-xpresence/pfpgen.py23
1 files changed, 21 insertions, 2 deletions
diff --git a/presence/pfpgen.py b/presence/pfpgen.py
index 1e22ac7..00ba900 100755
--- a/presence/pfpgen.py
+++ b/presence/pfpgen.py
@@ -194,8 +194,26 @@ class Rpolicy(ConfigEntry):
self.fan = get_index(objs, 'fan', self.fan)
+class AnyOf(Rpolicy, Renderer):
+ '''Default policy handler (policy:type:anyof).'''
+
+ def __init__(self, *a, **kw):
+ kw['name'] = 'anyof-{}'.format(kw['fan'])
+ super(AnyOf, self).__init__(**kw)
+
+ def setup(self, objs):
+ super(AnyOf, self).setup(objs)
+
+ def construct(self, loader, indent):
+ return self.render(
+ loader,
+ 'anyof.mako.hpp',
+ f=self,
+ indent=indent)
+
+
class Fallback(Rpolicy, Renderer):
- '''Default policy handler (policy:type:fallback).'''
+ '''Fallback policy handler (policy:type:fallback).'''
def __init__(self, *a, **kw):
kw['name'] = 'fallback-{}'.format(kw['fan'])
@@ -230,7 +248,7 @@ class Fan(ConfigEntry):
factory = Everything.classmap(self.rpolicy['type'])
rpolicy = factory(**self.rpolicy)
else:
- rpolicy = Fallback(fan=self.name)
+ rpolicy = AnyOf(fan=self.name)
for m in self.methods:
m['policy'] = rpolicy.name
@@ -252,6 +270,7 @@ class Everything(Renderer):
handler methods.'''
class_map = {
+ 'anyof': AnyOf,
'fan': Fan,
'fallback': Fallback,
'gpio': Gpio,
OpenPOWER on IntegriCloud