summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--statemachine.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/statemachine.py b/statemachine.py
index a708e5b..e3ad8f1 100644
--- a/statemachine.py
+++ b/statemachine.py
@@ -111,16 +111,20 @@ class StateMachine:
def __repr__(self):
return str(self)
+def m(*args): return Pattern(True, *args) # The "m" reads "match", so m("foo", "bar") reads 'match foo and bar'
+def nm(*args): return Pattern(False, *args) # Reads as "don't match." See above
+def any(): return nm() # Match anything. Implementation reads "don't match nothing"
+
if __name__ == "__main__":
sm = StateMachine()
- sm.deps.append((Category("mounted", type=Pattern(True, "nfs")), Category("network_up")))
- sm.deps.append((Category("mounted", uuid=Pattern(False), devname=Pattern(False), label=Pattern(False), type=Pattern(False, "nfs")), Category("found_disk", uuid=Pattern(False), devname=Pattern(False), label=Pattern(False))))
- sm.deps.append((Category("mounted", uuid=Pattern(False), devname=Pattern(False), label=Pattern(False)), Category("vol_conf", uuid=Pattern(False), devname=Pattern(False), label=Pattern(False))))
+ sm.deps.append((Category("mounted", type=m("nfs")), Category("network_up")))
+ sm.deps.append((Category("mounted", uuid=any(), devname=any(), label=any(), type=nm("nfs")), Category("found_disk", uuid=any(), devname=any(), label=any())))
+ sm.deps.append((Category("mounted", uuid=any(), devname=any(), label=any()), Category("vol_conf", uuid=any(), devname=any(), label=any())))
sm.bring_up(Category("network_up"))
- sm.bring_up(Category("vol_conf", uuid=Pattern(False), devname=Pattern(False), label=Pattern(True, "myroot"), type=Pattern(True, "ext3"), mountpoint=Pattern(True, "/")))
- sm.bring_up(Category("vol_conf", uuid=Pattern(False), devname=Pattern(True, "foosrv.com:/vol/home"), label=Pattern(False), type=Pattern(True, "nfs"), mountpoint=Pattern(True, "/home")))
- sm.bring_up(Category("found_disk", uuid=Pattern(True, "d3adb3ef"), devname=Pattern(True, "/dev/sda"), label=Pattern(True, "myroot")))
- sm.bring_up(Category("mounted", uuid=Pattern(False), type=Pattern(False), devname=Pattern(False), label=Pattern(False), mountpoint=Pattern(False)))
+ sm.bring_up(Category("vol_conf", uuid=any(), devname=any(), label=m("myroot"), type=m("ext3"), mountpoint=m("/")))
+ sm.bring_up(Category("vol_conf", uuid=any(), devname=m("foosrv.com:/vol/home"), label=any(), type=m("nfs"), mountpoint=m("/home")))
+ sm.bring_up(Category("found_disk", uuid=m("d3adb3ef"), devname=m("/dev/sda"), label=m("myroot")))
+ sm.bring_up(Category("mounted", uuid=any(), type=any(), devname=any(), label=any(), mountpoint=any()))
print sm
print "--"
sm.bring_down(Category("network_up"))