summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Structures
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2004-10-29 15:13:44 +0000
committerNarayan Desai <desai@mcs.anl.gov>2004-10-29 15:13:44 +0000
commit1ee8629d5f52afc29fb482fbcae626560594f800 (patch)
tree2043e8715c70acd5cadc6b1b37b11adb495fa154 /src/lib/Server/Structures
parent4504da7bb5ef77ffbf1cea9eb2de9a8db6a717b8 (diff)
downloadbcfg2-1ee8629d5f52afc29fb482fbcae626560594f800.tar.gz
bcfg2-1ee8629d5f52afc29fb482fbcae626560594f800.tar.bz2
bcfg2-1ee8629d5f52afc29fb482fbcae626560594f800.zip
name change
(Logical change 1.123) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@556 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Structures')
-rw-r--r--src/lib/Server/Structures/bundler.py92
1 files changed, 0 insertions, 92 deletions
diff --git a/src/lib/Server/Structures/bundler.py b/src/lib/Server/Structures/bundler.py
deleted file mode 100644
index 2c9d88fe9..000000000
--- a/src/lib/Server/Structures/bundler.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-
-'''This provides bundle clauses with translation functionality'''
-__revision__ = '$Revision$'
-
-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
-
-class ImageFile(SingleXMLFileBacked):
- '''This file contains image -> system mappings'''
- def Index(self):
- '''Build data structures out of the data'''
- a = XML(self.data)
- self.attr = a.attrib
- self.entries = a.getchildren()
- self.images = {}
- for child in self.entries:
- [name, pkg, service] = [child.get(x) for x in ['name', 'package', 'service']]
- for grandchild in child.getchildren():
- self.images[grandchild.get('name')] = (name, pkg, service)
-
-class Bundle(XMLFileBacked):
- def Index(self):
- x = XML(self.data)
- # scan self.entries to build partial bundle fragments
- self.all = []
- self.systems = {}
- self.attributes = {}
- for entry in x.getchildren():
- if entry.tag == 'System':
- self.systems[entry.attrib['name']] = entry.getchildren()
- elif entry.tag == 'Attribute':
- self.attributes["%s.%s" % (entry.get('scope'), entry.get('name'))] = entry.getchildren()
- else:
- self.all.append(entry)
- del self.data
-
- def BuildBundle(self, metadata, system):
- bundlename = self.name.split('/')[-1]
- b = Element('Bundle', name=bundlename)
- for entry in self.all + self.systems.get(system, []):
- b.append(deepcopy(entry))
- for attribute in metadata.attributes:
- for entry in self.attributes.get(attribute, []):
- b.append(deepcopy(entry))
- return b
-
-class BundleSet(DirectoryBacked):
- '''The Bundler handles creation of dependent clauses based on bundle definitions'''
- __child__ = Bundle
-
-class bundler(Structure):
- __name__ = 'bundler'
- __version__ = '$Id$'
-
- '''The bundler creates dependent clauses based on the bundle/translation scheme from bcfg1'''
- def __init__(self, core, datastore):
- Structure.__init__(self, core, datastore)
- self.imageinfo = ImageFile("%s/etc/imageinfo.xml"%(datastore), self.core.fam)
- self.bundles = BundleSet(self.data, self.core.fam)
-
- def Construct(self, metadata):
- (system, package, service) = self.GetTransInfo(metadata)
- bundleset = []
- for bundlename in metadata.bundles:
- if not self.bundles.entries.has_key("%s.xml"%(bundlename)):
- syslog(LOG_ERR, "Client %s requested nonexistent bundle %s"%(metadata.hostname, bundlename))
- continue
-
- bundle = self.bundles.entries["%s.xml" % (bundlename)].BuildBundle(metadata, system)
- # now we need to populate service/package types
- for entry in bundle.getchildren():
- if entry.tag == 'Package':
- entry.attrib['type'] = package
- elif entry.tag == 'Service':
- entry.attrib['type'] = service
- bundleset.append(bundle)
- return bundleset
-
- def GetTransInfo(self, metadata):
- if self.imageinfo.images.has_key(metadata.image):
- return self.imageinfo.images[metadata.image]
- else:
- raise KeyError, metadata.image
-
-
-