From 798d2c334c2ed4183a88fea6300e7be5e8cdfd9e Mon Sep 17 00:00:00 2001 From: Jan Pokorný Date: Thu, 12 Mar 2015 14:46:21 +0100 Subject: utils_cib + filters/ccsflat2pcsprelude: rg2hb_xsl "macro" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Promised "more systemic/less error-prone solution" to prevent random mistakes/typos/inconsistencies and to exercise DRY principle (slash common sense). Signed-off-by: Jan Pokorný --- filters/cluster/rm/apache/__init__.py | 30 ++++++++++----------------- filters/cluster/rm/lvm/__init__.py | 17 +++++++--------- filters/cluster/rm/mysql/__init__.py | 13 +++++------- filters/cluster/rm/nfsserver/__init__.py | 21 +++++++------------ filters/cluster/rm/postgres-8/__init__.py | 34 ++++++++++--------------------- utils_cib.py | 31 ++++++++++++++++++++++++++++ 6 files changed, 72 insertions(+), 74 deletions(-) diff --git a/filters/cluster/rm/apache/__init__.py b/filters/cluster/rm/apache/__init__.py index f90fbf0..7a5808a 100644 --- a/filters/cluster/rm/apache/__init__.py +++ b/filters/cluster/rm/apache/__init__.py @@ -4,7 +4,7 @@ # Licensed under GPLv2+ (a copy included | http://gnu.org/licenses/gpl-2.0.txt) __author__ = "Jan Pokorný " -from ....utils_cib import ResourceSpec +from ....utils_cib import ResourceSpec, rg2hb_xsl ccsflat2pcsprelude = '''\ @@ -17,12 +17,9 @@ ccsflat2pcsprelude = '''\ ) + ''' - - - - +''' + ( + rg2hb_xsl('configfile', 'config_file') +) + '''\ @@ -42,22 +39,17 @@ ccsflat2pcsprelude = '''\ - - - - +''' + ( + # see rhbz#952132 + rg2hb_xsl('httpd', 'httpd') +) + '''\ - - - +''' + ( + rg2hb_xsl('stop', 'shutdown_wait', op=True) +) + '''\ ''' diff --git a/filters/cluster/rm/lvm/__init__.py b/filters/cluster/rm/lvm/__init__.py index e8e8a5f..d27e465 100644 --- a/filters/cluster/rm/lvm/__init__.py +++ b/filters/cluster/rm/lvm/__init__.py @@ -1,10 +1,10 @@ # -*- coding: UTF-8 -*- -# Copyright 2014 Red Hat, Inc. +# Copyright 2015 Red Hat, Inc. # Part of clufter project # Licensed under GPLv2+ (a copy included | http://gnu.org/licenses/gpl-2.0.txt) __author__ = "Jan Pokorný " -from ....utils_cib import ResourceSpec +from ....utils_cib import ResourceSpec, rg2hb_xsl ccsflat2pcsprelude = '''\ @@ -23,14 +23,11 @@ ccsflat2pcsprelude = '''\ - - - - +''' + ( + rg2hb_xsl('volgrpname', 'vg_name', required=True) + + + rg2hb_xsl('exclusive', 'true', required=abs) +) + '''\ ''' diff --git a/filters/cluster/rm/mysql/__init__.py b/filters/cluster/rm/mysql/__init__.py index f797519..8f440d8 100644 --- a/filters/cluster/rm/mysql/__init__.py +++ b/filters/cluster/rm/mysql/__init__.py @@ -1,10 +1,10 @@ # -*- coding: UTF-8 -*- -# Copyright 2014 Red Hat, Inc. +# Copyright 2015 Red Hat, Inc. # Part of clufter project # Licensed under GPLv2+ (a copy included | http://gnu.org/licenses/gpl-2.0.txt) __author__ = "Jan Pokorný " -from ....utils_cib import ResourceSpec +from ....utils_cib import ResourceSpec, rg2hb_xsl ccsflat2pcsprelude = '''\ - - - - +''' + ( + rg2hb_xsl('config', 'config_file') +) + '''\ - - - - - - - - +''' + ( + rg2hb_xsl('nfs_shared_infodir', 'nfspath') + + + # see rhbz#918315 + rhbz#1096376/7 + rg2hb_xsl('statd_port', 'statdport') +) + '''\ ''' diff --git a/filters/cluster/rm/postgres-8/__init__.py b/filters/cluster/rm/postgres-8/__init__.py index 61060f4..80a877a 100644 --- a/filters/cluster/rm/postgres-8/__init__.py +++ b/filters/cluster/rm/postgres-8/__init__.py @@ -13,7 +13,7 @@ ccs_artefacts = ''.join(( ### -from ....utils_cib import ResourceSpec +from ....utils_cib import ResourceSpec, rg2hb_xsl ccsflat2pcsprelude = '''\ - - - - - - - - - - +''' + ( + rg2hb_xsl('config', 'config_file', required=True) + + + rg2hb_xsl('start_opt', 'postmaster_options') + + + rg2hb_xsl('pgdba', 'postmaster_user') +) + '''\ @@ -48,12 +39,9 @@ ccsflat2pcsprelude = '''\ - - - +''' + ( + rg2hb_xsl('start', 'startup_wait', op=True) +) + '''\ ''' diff --git a/utils_cib.py b/utils_cib.py index bf5d3a0..1170cc8 100644 --- a/utils_cib.py +++ b/utils_cib.py @@ -62,3 +62,34 @@ class ResourceSpec(object): ret += " and @provider='{0}'".format(self._provider) ret += " and @type='{0}'".format(self._type) return ret + + +def rg2hb_xsl(dst, src, required=False, op=False): + """Emit XSL snippet yielding nvpair-encoded HB RA parameter from RG one + + Parameters: + required valid values: False, True, abs (use raw `src` instead) + """ + assert required in (False, True, abs), "Invalid `required` param" + return (('''\ + +''' if not required else '') + (('''\ + + +''' if required is not abs else '''\ + value="{src}"/> +''')) if not op else ('''\ + + +''' if required is not abs else '''\ + timeout="{src}"/> +'''))) + ('''\ + +''' if not required else '')).format(dst=dst, src=src) -- cgit