As submitted by dclark
This file just shows you what’s available. It assumes a /var/lib/bcfg2/Properties/test.xml file with an entry like this:
<Properties>
<password>
<bcfg2>fakeBCFG2password</bcfg2>
</password>
</Properties>
Hostname is ${metadata.hostname}
Groups:
{% for group in metadata.groups %}\
${group} \
{% end %}\
{% if metadata.categories %}\
Categories:
{% for category in metadata.categories %}\
${category} \
{% end %}\
{% end %}\
{% if metadata.Probes %}\
Probes:
{% for probe, value in metadata.Probes.iteritems() %}\
$probe $value
{% end %}\
{% end %}\
Two main ways to get the same property value:
${metadata.Properties['test.xml'].xdata.find('password').find('bcfg2').text}
${metadata.Properties['test.xml'].xdata.xpath('password/bcfg2')[0].text}
One way to get information about metadata and properties:
dir(metadata):
{% for var in dir(metadata) %}\
${var} \
{% end %}
dir(metadata.Properties.xdata):
{% for var in dir(metadata.Properties.xdata) %}\
${var} \
{% end %}
dir(metadata.Properties.xdata.entries):
{% for var in dir(metadata.Properties.xdata.entries) %}\
${var} \
{% end %}
dir(metadata.Properties.xdata.label):
{% for var in dir(metadata.Properties.xdata.label) %}\
${var} \
{% end %}
dir(metadata.Properties.xdata.name):
{% for var in dir(metadata.Properties.xdata.name) %}\
${var} \
{% end %}
dir(metadata.Properties.xdata.properties):
{% for var in dir(metadata.Properties.xdata.properties) %}\
${var} \
{% end %}
When the above file is saved as Cfg/test/test.genshi and generated with bcfg2-info buildfile /test test.hostname.org, the results look like this (below reformatted a little bit to fit in 80 columns):
<Path type="file" name="/test" owner="root" mode="644" encoding="ascii" group="root" paranoid="false">
Hostname is test.hostname.org
Groups:
bcfg2-server
Two main ways to get the same property value:
fakeBCFG2password
fakeBCFG2password
One way to get information about metadata and properties:
dir(metadata):
__class__ __delattr__ __dict__ __doc__ __getattribute__ __hash__ __init__
__module__ __new__ __reduce__ __reduce_ex__ __repr__ __setattr__ __str__
__weakref__ all bundles categories get_clients_by_group get_clients_by_profile
groups hostname inGrouppassword probes uuid
dir(metadata.Properties.xdata):
HandleEvent Index __class__ __delattr__ __dict__ __doc__ __getattribute__
__hash__ __identifier__ __init__ __iter__ __module__ __new__ __reduce__
__reduce_ex__ __repr__ __setattr__ __str__ __weakref__ entries label name
properties
dir(metadata.Properties.xdata.entries):
__add__ __class__ __contains__ __delattr__ __delitem__ __delslice__ __doc__
__eq__ __ge__ __getattribute__ __getitem__ __getslice__ __gt__ __hash__
__iadd__ __imul__ __init__ __iter__ __le__ __len__ __lt__ __mul__ __ne__
__new__ __reduce__ __reduce_ex__ __repr__ __reversed__ __rmul__ __setattr__
__setitem__ __setslice__ __str__ append count extend index insert pop remove
reverse sort
dir(metadata.Properties.xdata.label):
__add__ __class__ __contains__ __delattr__ __doc__ __eq__ __ge__
__getattribute__ __getitem__ __getnewargs__ __getslice__ __gt__ __hash__
__init__ __le__ __len__ __lt__ __mod__ __mul__ __ne__ __new__ __reduce__
__reduce_ex__ __repr__ __rmod__ __rmul__ __setattr__ __str__ capitalize center
count decode encode endswith expandtabs find index isalnum isalpha isdigit
islower isspace istitle isupper join ljust lower lstrip partition replace
rfind rindex rjust rpartition rsplit rstrip split splitlinesstartswith strip
swapcase title translate upper zfill
dir(metadata.Properties.xdata.name):
__add__ __class__ __contains__ __delattr__ __doc__ __eq__ __ge__
__getattribute__ __getitem__ __getnewargs__ __getslice__ __gt__ __hash__
__init__ __le__ __len__ __lt__ __mod__ __mul__ __ne__ __new__ __reduce__
__reduce_ex__ __repr__ __rmod__ __rmul__ __setattr__ __str__ capitalize center
count decode encode endswith expandtabs find index isalnum isalpha isdigit
islower isspace istitle isupper join ljust lower lstrip partition replace
rfind rindex rjust rpartition rsplit rstrip split splitlinesstartswith strip
swapcase title translate upper zfill
dir(metadata.Properties.xdata.properties):
__class__ __contains__ __copy__ __deepcopy__ __delattr__ __delitem__
__delslice__ __doc__ __getattribute__ __getitem__ __getslice__ __hash__
__init__ __iter__ __len__ __new__ __nonzero__ __reduce__ __reduce_ex__
__repr__ __reversed__ __setattr__ __setitem__ __setslice__ __str__ _init
addnext addprevious append attrib clear extend find findall findtext get
getchildren getiterator getnext getparent getprevious getroottree index insert
items iterancestors iterchildren iterdescendants itersiblings keys makeelement
nsmap prefix remove replace set sourceline tag tail text values xpath
</Path>