summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcluster-cman.py51
-rw-r--r--lib_cman.py174
-rw-r--r--lib_shared.py51
3 files changed, 245 insertions, 31 deletions
diff --git a/cluster-cman.py b/cluster-cman.py
index 5972a96..695fc67 100755
--- a/cluster-cman.py
+++ b/cluster-cman.py
@@ -19,8 +19,9 @@ from sys import argv
from os.path import splitext
from lib import LibDot, main
from lib_subgraphs import *
-from lib_nodes import *
-from lib_edges import *
+from lib_nodes import * # remove when possible
+from lib_edges import * # ditto
+from lib_cman import *
FONT = 'Inconsolata'
@@ -70,9 +71,9 @@ graph = lambda\
#
,label='management client'
,_nodes=\
- [Executable('luci')
- ,Executable('ccs')
- ,Executable('ccs_sync')
+ [CmanLuci('luci')
+ ,CmanCcs('ccs')
+ ,CmanCcsSync('ccs_sync')
])
])
,SubgraphInvisible('cluster.nodes'
@@ -93,19 +94,16 @@ graph = lambda\
#
,label='management (incomplete)'
,_nodes=\
- [Daemon('node_c-ricci'
- ,label='ricci'
+ [CmanRicci('node_c-ricci'
)
- ,Daemon('node_c-modclusterd'
- ,label='modclusterd'
+ ,CmanModclusterd('node_c-modclusterd'
)]
)]
,_nodes=\
[Program('node_c-kernel'
,label='kernel'
)
- ,Daemon('node_c-rgmanager'
- ,label='rgmanager'
+ ,CmanRGManager('node_c-rgmanager'
)]
)
,SubgraphImportant('cluster.node_b'
@@ -129,17 +127,13 @@ graph = lambda\
,Artefact('node_b-clumond.sock'
,label='/var/run/\nclumond.sock'
)
- ,Daemon('node_b-ricci'
- ,label='ricci'
+ ,CmanRicci('node_b-ricci'
)
- ,Executable('node_b-cman_tool'
- ,label='cman_tool'
+ ,CmanCmanTool('node_b-cman_tool'
)
- ,Daemon('node_b-modclusterd'
- ,label='modclusterd'
+ ,CmanModclusterd('node_b-modclusterd'
)
- ,Executable('node_b-modcluster'
- ,label='modcluster'
+ ,CmanModcluster('node_b-modcluster'
)
,Executable('node_b-ricci-modules'
,label='ricci-mod{log,\nrpm,service,\nstorage,virt}'
@@ -171,11 +165,9 @@ graph = lambda\
[Library('node_b-libccsconfdb'
,label='libccsconfdb'
)
- ,Daemon('node_b-rgmanager'
- ,label='rgmanager'
+ ,CmanRGManager('node_b-rgmanager'
)
- ,Executable('node_b-clustat'
- ,label='clustat'
+ ,CmanClustat('node_b-clustat'
)
,Artefact('node_b-rgmanager.sk'
,label='/var/run/\ncluster/\nrgmanager.sk'
@@ -200,8 +192,8 @@ graph = lambda\
#
,label='fence agents'
,_nodes=\
- [Executable('node_b-fence_virt'
- ,label='virt,xvm'
+ [SharedFenceVirt('node_b-fence_virt'
+ ,label='virt\,xvm'
)
,Executable('node_b-fence_others'
,label='others'
@@ -371,19 +363,16 @@ graph = lambda\
#
,label='management (incomplete)'
,_nodes=\
- [Daemon('node_a-ricci'
- ,label='ricci'
+ [CmanRicci('node_a-ricci'
)
- ,Daemon('node_a-modclusterd'
- ,label='modclusterd'
+ ,CmanModclusterd('node_a-modclusterd'
)]
)]
,_nodes=\
[Program('node_a-kernel'
,label='kernel'
)
- ,Daemon('node_a-rgmanager'
- ,label='rgmanager'
+ ,CmanRGManager('node_a-rgmanager'
)]
)]
)
diff --git a/lib_cman.py b/lib_cman.py
new file mode 100644
index 0000000..198ca34
--- /dev/null
+++ b/lib_cman.py
@@ -0,0 +1,174 @@
+#!/usr/bin/env python
+# vim: set fileencoding=UTF-8:
+# Copyright 2013 Red Hat, Inc.
+# Author: Jan Pokorný <jpokorny at redhat dot com>
+# Distributed under GPLv2+; generated content under CC-BY-SA 3.0
+# (to view a copy, visit http://creativecommons.org/licenses/by-sa/3.0/)
+"""Library comprising cman cluster entities and relationships"""
+
+from lib_nodes import *
+from lib_edges import *
+from lib_shared import *
+
+
+class CmanRGManager(Daemon):
+ defaults = dict((
+ LABEL('rgmanager'),
+ ))
+ summary = \
+ "RGManager (Resource Group ~) deals with cluster resources"
+ web = 'https://fedorahosted.org/cluster/wiki/RGManager'
+ repo = dict(
+ git='git://git.fedorahosted.org/git/cluster.git',
+ web='https://git.fedorahosted.org/cgit/cluster.git',
+ ml='https://lists.fedorahosted.org/mailman/listinfo/cluster-commits'
+ )
+ man = [
+ 'rgmanager(8)'
+ ]
+ srpm = 'rgmanager'
+ rpm = 'rgmanager'
+ rhbz = 'rgmanager'
+
+
+class CmanClustat(Executable):
+ defaults = dict((
+ LABEL('clustat'),
+ ))
+ summary = \
+ "clustat is a program to display cluster status"
+ repo = dict(
+ git='git://git.fedorahosted.org/git/cluster.git',
+ web='https://git.fedorahosted.org/cgit/cluster.git',
+ ml='https://lists.fedorahosted.org/mailman/listinfo/cluster-commits'
+ )
+ man = [
+ 'clustat(8)'
+ ]
+ srpm = 'rgmanager'
+ rpm = 'rgmanager'
+ rhbz = 'rgmanager'
+
+
+class CmanCmanTool(Executable):
+ defaults = dict((
+ LABEL('cman_tool'),
+ ))
+ summary = \
+ "cman_tool is a program to manage CMAN cluster subsystem"
+ repo = dict(
+ git='git://git.fedorahosted.org/git/cluster.git',
+ web='https://git.fedorahosted.org/cgit/cluster.git',
+ ml='https://lists.fedorahosted.org/mailman/listinfo/cluster-commits'
+ )
+ man = [
+ 'cman_tool(8)'
+ ]
+ srpm = 'cluster'
+ rpm = 'cman'
+ rhbz = 'cluster'
+
+
+class CmanRicci(Daemon):
+ defaults = dict((
+ LABEL('ricci'),
+ ))
+ summary = \
+ "ricci daemon is an executive back-end within cluster management (conga)"
+ #web = 'https://sourceware.org/cluster/conga/'
+ repo = dict(
+ git='git://git.fedorahosted.org/git/conga.git',
+ web='https://git.fedorahosted.org/cgit/conga.git',
+ )
+ man = [
+ 'ricci(8)'
+ ]
+ srpm = 'ricci'
+ rpm = 'ricci'
+ rhbz = 'ricci'
+
+
+class CmanCcs(Executable):
+ defaults = dict((
+ LABEL('ccs'),
+ ))
+ summary = \
+ "ccs is a CLI front-end within cluster management (conga)"
+ repo = dict(
+ #git='git://git.fedorahosted.org/git/conga.git',
+ git='git://github.com/feist/ccs.git',
+ #web='https://git.fedorahosted.org/cgit/conga.git',
+ web='https://github.com/feist/ccs',
+ )
+ man = [
+ 'ccs(8)'
+ ]
+ srpm = 'ricci'
+ rpm = 'ccs'
+ rhbz = 'ricci'
+
+
+class CmanCcsSync(Executable):
+ defaults = dict((
+ LABEL('ccs_sync'),
+ ))
+ summary = \
+ "ccs_sync is a program to distribute+propagate cluster configuration"
+ repo = dict(
+ git='git://git.fedorahosted.org/git/conga.git',
+ web='https://git.fedorahosted.org/cgit/conga.git',
+ )
+ man = [
+ 'ccs_sync(8)'
+ ]
+ srpm = 'ricci'
+ rpm = 'ricci'
+ rhbz = 'ricci'
+
+
+class CmanLuci(Daemon):
+ defaults = dict((
+ LABEL('luci'),
+ ))
+ summary = \
+ "luci is a web front-end within cluster management (conga)"
+ #web = 'https://sourceware.org/cluster/conga/'
+ web = 'https://fedorahosted.org/cluster/wiki/Luci'
+ repo = dict(
+ git='git://git.fedorahosted.org/git/luci.git',
+ web='https://git.fedorahosted.org/cgit/luci.git',
+ ml='https://lists.fedorahosted.org/mailman/listinfo/luci-commits',
+ )
+ srpm = 'luci'
+ rpm = 'luci'
+ rhbz = 'luci'
+
+
+class CmanModclusterd(Daemon):
+ defaults = dict((
+ LABEL('modclusterd'),
+ ))
+ summary = \
+ "modclusterd is a deamon facilitating info about cluster status (to conga)"
+ repo = dict(
+ git='git://git.fedorahosted.org/git/conga.git',
+ web='https://git.fedorahosted.org/cgit/conga.git',
+ )
+ srpm = 'clustermon'
+ rpm = 'modcluster'
+ rhbz = 'clustermon'
+
+
+class CmanModcluster(Executable):
+ defaults = dict((
+ LABEL('modcluster'),
+ ))
+ summary = \
+ "modcluster is a ricci's helper dealing with cluster config and status"
+ repo = dict(
+ git='git://git.fedorahosted.org/git/conga.git',
+ web='https://git.fedorahosted.org/cgit/conga.git',
+ )
+ srpm = 'clustermon'
+ rpm = 'modcluster'
+ rhbz = 'clustermon'
diff --git a/lib_shared.py b/lib_shared.py
new file mode 100644
index 0000000..55bf527
--- /dev/null
+++ b/lib_shared.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# vim: set fileencoding=UTF-8:
+# Copyright 2013 Red Hat, Inc.
+# Author: Jan Pokorný <jpokorny at redhat dot com>
+# Distributed under GPLv2+; generated content under CC-BY-SA 3.0
+# (to view a copy, visit http://creativecommons.org/licenses/by-sa/3.0/)
+"""Library comprising shared cluster entities and relationships"""
+
+from lib_nodes import *
+from lib_edges import *
+
+
+class SharedFencevirtd(Daemon):
+ defaults = dict((
+ LABEL('fence_virtd'),
+ ))
+ summary = \
+ "fence_virtd is daemon listening for fence_virt's fencing requests"
+ repo = dict(
+ git='git://github.com/ryan-mccabe/fence-virt.git',
+ #git='git://git.code.sf.net/p/fence-virt/code',
+ web='https://github.com/ryan-mccabe/fence-virt',
+ # web='http://sourceforge.net/p/fence-virt/code',
+ )
+ man = [
+ 'fence_virtd(8)'
+ ]
+ srpm = 'fence-virt'
+ rpm = 'fence-virtd' # + ~-{checkpoint, libvirt, multicast, serial}
+ rhbz = 'fence-virt'
+
+
+class SharedFenceVirt(Executable):
+ defaults = dict((
+ LABEL('fence_virt'),
+ ))
+ summary = \
+ "fence_{virt,xvm} is a program to request fencing via fence_virtd"
+ repo = dict(
+ git='git://github.com/ryan-mccabe/fence-virt.git',
+ #git='git://git.code.sf.net/p/fence-virt/code',
+ web='https://github.com/ryan-mccabe/fence-virt',
+ # web='http://sourceforge.net/p/fence-virt/code',
+ )
+ man = [
+ 'fence_virt(8)',
+ 'fence_xvm(8)',
+ ]
+ srpm = 'fence-virt'
+ rpm = 'fence-virt'
+ rhbz = 'fence-virt'