summaryrefslogtreecommitdiffstats
path: root/lib.py
diff options
context:
space:
mode:
authorJan Pokorný <jpokorny@redhat.com>2013-09-02 22:08:48 +0200
committerJan Pokorný <jpokorny@redhat.com>2013-09-02 22:23:08 +0200
commit76342f5aa39f3f4cc5647783ede8710ad030b653 (patch)
tree0fac4de00347de5dde5d4cbdf168a6f0f1fd6b0d /lib.py
parente577f8209e1f39b962ceb743ce174ee56349cb66 (diff)
downloadcluster-overview-76342f5aa39f3f4cc5647783ede8710ad030b653.tar.gz
cluster-overview-76342f5aa39f3f4cc5647783ede8710ad030b653.tar.xz
cluster-overview-76342f5aa39f3f4cc5647783ede8710ad030b653.zip
More massive update
(sorry, it's an trial-and-error hell) Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
Diffstat (limited to 'lib.py')
-rw-r--r--lib.py59
1 files changed, 53 insertions, 6 deletions
diff --git a/lib.py b/lib.py
index fac2ba7..1bff402 100644
--- a/lib.py
+++ b/lib.py
@@ -77,7 +77,7 @@ class LibDot(Dot):
def __init__(self, *args, **kwargs):
kwargs.setdefault('graph_type', 'digraph')
super(LibDot, self).__init__(*args, **kwargs)
- self.set_suppress_disconnected(True)
+ #self.set_suppress_disconnected(True)
class LibSubgraph(Subgraph):
@@ -116,7 +116,7 @@ class SubgraphStandard(LibSubgraph):
class SubgraphInvisible(LibSubgraph):
def __init__(self, *args, **kwargs):
- kwargs.setdefault('style', 'invisible')
+ kwargs.setdefault('style', 'invis')
super(SubgraphInvisible, self).__init__(*args, **kwargs)
@@ -126,6 +126,12 @@ class SubgraphInvisible(LibSubgraph):
#
+class NodeInvisible(LibNode):
+ def __init__(self, *args, **kwargs):
+ kwargs.setdefault('style', 'invis')
+ super(LibNode, self).__init__(*args, **kwargs)
+
+
class Program(LibNode):
def __init__(self, *args, **kwargs):
kwargs.setdefault('shape', 'box')
@@ -166,10 +172,34 @@ class Artefact(LibNode):
super(Artefact, self).__init__(*args, **kwargs)
+class Device(LibNode):
+ def __init__(self, *args, **kwargs):
+ kwargs.setdefault('shape', 'box3d')
+ kwargs.setdefault('fillcolor', 'wheat')
+ kwargs.setdefault('style', 'filled')
+ super(Device, self).__init__(*args, **kwargs)
+
+
+class StorageDevice(Device):
+ def __init__(self, *args, **kwargs):
+ super(StorageDevice, self).__init__(*args, **kwargs)
+
+
+class FenceDevice(Device):
+ def __init__(self, *args, **kwargs):
+ super(FenceDevice, self).__init__(*args, **kwargs)
+
+
#
# Edge inheritance
#
+class EdgeInvisible(LibEdge):
+ def __init__(self, *args, **kwargs):
+ kwargs.setdefault('style', 'invis')
+ kwargs.setdefault('arrowhead', 'none')
+ super(EdgeInvisible, self).__init__(*args, **kwargs)
+
class DBUS(LibEdge):
def __init__(self, *args, **kwargs):
@@ -243,19 +273,36 @@ class Delegate(LibEdge):
def __init__(self, *args, **kwargs):
kwargs.setdefault('color', 'navy')
kwargs.setdefault('fontcolor', 'navy')
- kwargs.setdefault('dir', 'both')
+ #kwargs.setdefault('dir', 'both')
super(Delegate, self).__init__(*args, **kwargs)
-# peer-to-peer
+class Kill(LibEdge):
+ def __init__(self, *args, **kwargs):
+ kwargs.setdefault('color', 'red')
+ kwargs.setdefault('dir', 'back')
+ #kwargs.setdefault('constraint', 'false')
+ super(Kill, self).__init__(*args, **kwargs)
+
+
+# peer-to-peer (1:1 hence constraint='false')
class Exchange(LibEdge):
def __init__(self, *args, **kwargs):
kwargs.setdefault('color', 'saddlebrown')
kwargs.setdefault('fontcolor', 'saddlebrown')
kwargs.setdefault('dir', 'both')
+ kwargs.setdefault('constraint', 'false')
super(Exchange, self).__init__(*args, **kwargs)
+# data bus
+class Databus(Exchange):
+ def __init__(self, *args, **kwargs):
+ kwargs.setdefault('color', 'saddlebrown')
+ kwargs.setdefault('fontcolor', 'saddlebrown')
+ super(Databus, self).__init__(*args, **kwargs)
+
+
# mixing
class DelegateOddjobExec(Delegate, OddjobExec):
@@ -391,14 +438,14 @@ def xdot_graph(*args, **kwargs):
try:
i = globals()[i]
if issubclass(i, LibEdge):
- if i is LibEdge:
+ if i in (LibEdge, EdgeInvisible):
continue
imenuitem = gtk.CheckMenuItem("%s" % i.__name__)
imenuitem.set_active(True)
imenuitem.connect("activate", self.on_toggle_item)
edgemenu.append(imenuitem)
elif issubclass(i, LibNode):
- if i is LibNode:
+ if i in (LibNode, NodeInvisible):
continue
imenuitem = gtk.CheckMenuItem("%s" % i.__name__)
imenuitem.set_active(True)