# -*- 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) """*2pcscmd filters helpers""" __author__ = "Jan Pokorný " from xml.sax.saxutils import escape from ..utils_xslt import NL verbose_prefix = ':: ' verbose_OK = verbose_prefix + 'OK' verbose_FAILURE = verbose_prefix + 'FAILURE' ec_test = "{0}{1}:{1}".format( escape("test $? -eq 0 && echo '{verbose_OK}' || echo '{verbose_FAILURE}'" .format(verbose_OK=verbose_OK, verbose_FAILURE=verbose_FAILURE), {"'": "'", '"': """}), NL ) verbose_ec_test = '''\ ''' % dict( ec_test=ec_test ) def verbose_inform(what): return '''\ ''' % dict( what=what or '""', verbose_prefix=verbose_prefix or '""', NL=NL, ) def coro2pcscmd(**kwargs): descent = lambda w: \ ''.format( what=kwargs.get(w) or w ) if w in kwargs else '' return ('''\ ''' + ( verbose_inform('"auth cluster: ", $ClusterName') ) + ''' %(descent_node)s ''' + ( verbose_ec_test ) + ''' ''' + ( verbose_inform('"check cluster includes local machine: ", $ClusterName') ) + r''' %(descent_node)s ''' + ( verbose_inform('"new cluster: ", $ClusterName') ) + ''' %(msg_enable)s %(descent_node)s %(descent_cman)s %(descent_totem)s %(descent_quorum)s ''' + ( verbose_ec_test ) + ''' ''' + ( verbose_inform('"waiting for cluster to come up: ", $ClusterName, " seconds"') ) + ''' ''' + ( verbose_ec_test ) + ''' ''') % dict( NL=NL, msg_enable="NOTE: cluster infrastructure services not enabled" " at this point, which can be changed any time by issuing" " `pcs cluster enable --all`", **dict(('descent_' + k, descent(k)) for k in ('cman', 'node', 'quorum', 'totem')) )