summaryrefslogtreecommitdiffstats
path: root/doc/server/plugins/properties.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/server/plugins/properties.txt')
-rw-r--r--doc/server/plugins/properties.txt46
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/server/plugins/properties.txt b/doc/server/plugins/properties.txt
new file mode 100644
index 000000000..fa8bfd884
--- /dev/null
+++ b/doc/server/plugins/properties.txt
@@ -0,0 +1,46 @@
+.. -*- mode: rst -*-
+
+.. _server-plugins-properties:
+
+==========
+Properties
+==========
+
+The Properties plugin is a connector plugin that adds information from
+properties files into client metadata instances.
+
+Enabling Properties
+===================
+
+First, ``mkdir /var/lib/bcfg2/Properties``. Each property XML file goes
+in this directory. Each will automatically be cached by the server,
+and reread/reparsed upon changes. Add **Properties** to your ``plugins``
+line in ``/etc/bcfg2.conf``.
+
+Data Structures
+===============
+
+Properties adds a new dictionary to client metadata instances that maps
+property file names to PropertyFile instances. PropertyFile instances
+contain parsed XML data as the "data" attribute.
+
+Usage
+=====
+
+Specific property files can be referred to in
+templates as metadata.Properties[<filename>]. The
+data attribute is an LXML element object. (Documented
+`here <http://codespeak.net/lxml/tutorial.html#the-element-class>`_)
+
+Currently, no access methods are defined for this data, but as we
+formulate common use cases, we will add them to the !PropertyFile class
+as methods. This will simplify templates.
+
+Accessing Properties contest from TGenshi
+=========================================
+
+Access contents of ``Properties/auth.xml``
+
+::
+
+ ${metadata.Properties['auth.xml'].data.find('file').find('bcfg2.key').text}