summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Pokorný <jpokorny@redhat.com>2016-01-22 16:33:56 +0100
committerJan Pokorný <jpokorny@redhat.com>2016-02-01 23:53:36 +0100
commitd614aae4fcbe2fe4fe173fa1ac5bd689c79de422 (patch)
tree94ac0555d134f7f7864e67a755938c7afd534271
parent2fd302a570c1188b84dcb93ab486d30b6d391379 (diff)
downloadclufter-d614aae4fcbe2fe4fe173fa1ac5bd689c79de422.tar.gz
clufter-d614aae4fcbe2fe4fe173fa1ac5bd689c79de422.tar.xz
clufter-d614aae4fcbe2fe4fe173fa1ac5bd689c79de422.zip
filters/cib2pcscmd: generalize attrset_xsl
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
-rw-r--r--filters/cib2pcscmd.py49
1 files changed, 31 insertions, 18 deletions
diff --git a/filters/cib2pcscmd.py b/filters/cib2pcscmd.py
index 81041ee..bdd0b1d 100644
--- a/filters/cib2pcscmd.py
+++ b/filters/cib2pcscmd.py
@@ -1,37 +1,50 @@
# -*- coding: UTF-8 -*-
-# Copyright 2015 Red Hat, Inc.
+# Copyright 2016 Red Hat, Inc.
# Part of clufter project
# Licensed under GPLv2+ (a copy included | http://gnu.org/licenses/gpl-2.0.txt)
"""cib2pcscmd filter"""
__author__ = "Jan Pokorný <jpokorny @at@ Red Hat .dot. com>"
from ..filter import XMLFilter
+from ..filters._2pcscmd import verbose_ec_test, verbose_inform
from ..utils_xml import squote
-from ..utils_xslt import xslt_params
+from ..utils_xslt import NL, xslt_params
-def attrset_xsl(attrset):
+def attrset_xsl(attrset, cmd=None, inform=None):
return ('''\
- <xsl:for-each select="{attrset}">
- <xsl:choose>
- <xsl:when test="rule and nvpair">
- <xsl:message>
- <!-- TODO:PCS -->
- <xsl:value-of select="concat('WARNING: has to skip rule-based',
- ' {attrset} ', @id,
- ' (rhbz#1250744)')"/>
- </xsl:message>
- </xsl:when>
- <xsl:otherwise>
+ <xsl:if test="{attrset}/nvpair">
+ <xsl:choose>
+ <xsl:when test="{attrset}/rule">
+ <xsl:message>
+ <!-- TODO:PCS -->
+ <xsl:value-of select="concat('WARNING: has to skip rule-based',
+ ' {attrset} ', @id,
+ ' (rhbz#1250744)')"/>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+''' + (
+ (verbose_inform(inform) + '\n' if inform else '')
+ +
+ ('''<xsl:value-of select='concat("", {cmd})'/>'''
+ if cmd else '')
+) + '''
+ <xsl:for-each select="{attrset}">
<xsl:for-each select="nvpair">
<xsl:value-of select='concat(" &apos;",
@name, "=", @value,
"&apos;")'/>
</xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
-''').format(attrset=attrset)
+ </xsl:for-each>
+''' + (
+ ('''<xsl:value-of select="'{NL}'"/>''' + '\n'
+ + verbose_ec_test) if cmd else ''
+) + '''
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+''').format(NL=NL, attrset=attrset, cmd=cmd)
@XMLFilter.deco('cib', 'string-list', defs=dict(