summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Structures
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2004-08-31 20:34:24 +0000
committerNarayan Desai <desai@mcs.anl.gov>2004-08-31 20:34:24 +0000
commit3c82a53b0d37723fedbd0684c9b53041da33475b (patch)
tree5e328682363827c05b7abb74ba8f05031612ef55 /src/lib/Server/Structures
parent87b82e1990e80f91e81b1f2b70adcf1d8db30733 (diff)
downloadbcfg2-3c82a53b0d37723fedbd0684c9b53041da33475b.tar.gz
bcfg2-3c82a53b0d37723fedbd0684c9b53041da33475b.tar.bz2
bcfg2-3c82a53b0d37723fedbd0684c9b53041da33475b.zip
change to ID for now
2004/08/31 15:33:31-05:00 anl.gov!desai switch to actual rcs keyword 2004/08/31 15:32:46-05:00 anl.gov!desai (Logical change 1.52) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@297 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Structures')
-rw-r--r--src/lib/Server/Structures/base.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/lib/Server/Structures/base.py b/src/lib/Server/Structures/base.py
index e69de29bb..880f4af61 100644
--- a/src/lib/Server/Structures/base.py
+++ b/src/lib/Server/Structures/base.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+# $Id: $
+from copy import deepcopy
+from syslog import LOG_ERR, syslog
+
+from Bcfg2.Server.Generator import SingleXMLFileBacked, XMLFileBacked, DirectoryBacked
+from Bcfg2.Server.Structure import Structure
+
+from elementtree.ElementTree import Element, XML, tostring
+
+class BaseFile(SingleXMLFileBacked):
+ def Index(self):
+ self.store = {}
+ self.store['Image'] = {}
+ self.store['Class'] = {}
+ self.store['Host'] = {}
+ a = XML(self.data)
+ self.entries = a.getchildren()
+ for e in self.entries:
+ self.store[e.tag][e.attrib['name']] = e.getchildren()
+
+ def Construct(self, metadata):
+ r = Element("Independant", version='2.0')
+ for entry in self.store['Image'].get(metadata.image, []):
+ r.append(deepcopy(entry))
+ for c in metadata.classes:
+ for entry in self.store['Class'].get(c, []):
+ r.append(deepcopy(entry))
+ for entry in self.store['Host'].get(metadata.hostname):
+ r.append(deepcopy(entry))
+ return [r]
+
+class base(Structure):
+ __name__ = 'base'
+ __version__ = '$Id$'
+
+ '''base creates independent clauses based on client metadata'''
+ def __init__(self, core, datastore):
+ Structure.__init__(self, core, datastore)
+ self.base = ImageFile("%s/common/base.xml"%(datastore), self.core.fam)
+ self.Construct = self.base.Construct