From e0e8b45dcf2b27bc7bf944e67238aeaaadcd505d Mon Sep 17 00:00:00 2001 From: Jan Pokorný Date: Dec 11 2015 23:34:35 +0000 Subject: filters/cib2pcscmd[resources]: handle clone/master explicitly Explicit commands are definitely easier to grasp than, e.g., "--clone foo=bar" hidden at the tail of a "resource add" command. Signed-off-by: Jan Pokorný --- diff --git a/filters/cib/configuration/resources/__init__.py b/filters/cib/configuration/resources/__init__.py index c30aec7..772e347 100644 --- a/filters/cib/configuration/resources/__init__.py +++ b/filters/cib/configuration/resources/__init__.py @@ -322,7 +322,7 @@ cibprelude2cibcompact = ('''\ from ....filters._2pcscmd import verbose_ec_test, verbose_inform from ....filters.cib2pcscmd import attrset_xsl -from ....utils_xslt import NL, xslt_is_member +from ....utils_xslt import NL cib2pcscmd = ('''\ @@ -383,12 +383,12 @@ cib2pcscmd = ('''\ ''' + ( - verbose_inform('"new clone resource: ", @id') + verbose_inform('"new resource: ", @id, " (to be set as clone)"') ) + ''' ''' + ( - verbose_inform('"new master resource: ", @id') + verbose_inform('"new resource: ", @id, " (to be set as master)"') ) + ''' @@ -422,28 +422,22 @@ cib2pcscmd = ('''\ attrset_xsl("meta_attributes") ) + ''' - - - -''' + ( - attrset_xsl("../meta_attributes") -) + ''' - + ''' + ( verbose_ec_test ) + ''' - + + + + + + + +''' + ( + verbose_inform('"make ", name(), " a clone: ", @id') +) + ''' + + + + + + +''' + ( + attrset_xsl("../meta_attributes") +) + ''' + +''' + ( + verbose_ec_test +) + ''' + +''') % dict( + NL=NL, +) diff --git a/filters/cib/configuration/resources/clone/__init__.py b/filters/cib/configuration/resources/clone/__init__.py new file mode 100644 index 0000000..ad599c6 --- /dev/null +++ b/filters/cib/configuration/resources/clone/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: UTF-8 -*- +# 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 logging import getLogger +log = getLogger(__name__) + +# XXX a bit dirty DRY approach +from os.path import dirname, join +use = join(reduce(lambda a, b: dirname(a), xrange(2), __file__), '_clone_master.py') +myglobals = dict(__package__=__package__, __name__=__name__) +try: + execfile(use, myglobals) +except IOError: + log.error("Unable to refer to `{0}' file".format(use)) +else: + cib2pcscmd = myglobals['cib2pcscmd'] diff --git a/filters/cib/configuration/resources/master/__init__.py b/filters/cib/configuration/resources/master/__init__.py new file mode 100644 index 0000000..ad599c6 --- /dev/null +++ b/filters/cib/configuration/resources/master/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: UTF-8 -*- +# 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 logging import getLogger +log = getLogger(__name__) + +# XXX a bit dirty DRY approach +from os.path import dirname, join +use = join(reduce(lambda a, b: dirname(a), xrange(2), __file__), '_clone_master.py') +myglobals = dict(__package__=__package__, __name__=__name__) +try: + execfile(use, myglobals) +except IOError: + log.error("Unable to refer to `{0}' file".format(use)) +else: + cib2pcscmd = myglobals['cib2pcscmd'] diff --git a/tests/filters/cib2pcscmd.py b/tests/filters/cib2pcscmd.py index 59d29e1..2cd1321 100644 --- a/tests/filters/cib2pcscmd.py +++ b/tests/filters/cib2pcscmd.py @@ -30,8 +30,9 @@ pcs stonith create FENCEDEV-fence-virt-064 fence_xvm 'auth=sha256' 'hash=sha256' pcs stonith create FENCEDEV-fence-virt-069 fence_xvm 'auth=sha256' 'hash=sha256' 'key_file=/etc/cluster/fence_xvm.key' 'timeout=5' 'pcmk_host_map=virt-069:virt-069.cluster-qe.lab.eng.brq.redhat.com' pcs resource create RESOURCE-ip-10.34.71.234 ocf:heartbeat:IPaddr2 'ip=10.34.71.234' pcs resource create RESOURCE-apache-webserver ocf:heartbeat:apache 'configfile=/etc/httpd/sconf/httpd.conf' 'options= -Dwebserver -d "/etc/httpd"' -pcs resource create memcached systemd:memcached op start 'id=memcached-start-timeout-60s' 'interval=0s' 'name=start' 'timeout=60s' monitor 'id=memcached-monitor-interval-60s' 'interval=60s' 'name=monitor' --clone 'interleave=true' +pcs resource create memcached systemd:memcached op start 'id=memcached-start-timeout-60s' 'interval=0s' 'name=start' 'timeout=60s' monitor 'id=memcached-monitor-interval-60s' 'interval=60s' 'name=monitor' pcs resource group add SERVICE-svc-GROUP RESOURCE-ip-10.34.71.234 RESOURCE-apache-webserver +pcs resource clone memcached 'interleave=true' ''' )