summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2004-01-06 05:30:25 +0000
committerNarayan Desai <desai@mcs.anl.gov>2004-01-06 05:30:25 +0000
commit435159b9bd8b1365b1972c89ce746d8180d1841b (patch)
treeb832134f55366c324a86705409fe027ce085c64b /src
parent70c9c4961d8e336d96e57dbd58694556b65ca1df (diff)
downloadbcfg2-435159b9bd8b1365b1972c89ce746d8180d1841b.tar.gz
bcfg2-435159b9bd8b1365b1972c89ce746d8180d1841b.tar.bz2
bcfg2-435159b9bd8b1365b1972c89ce746d8180d1841b.zip
move GeneratorContainer -> Core.py:Core
(Logical change 1.10) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@37 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rw-r--r--src/Generator.py59
1 files changed, 5 insertions, 54 deletions
diff --git a/src/Generator.py b/src/Generator.py
index 6fde580a1..092bf735f 100644
--- a/src/Generator.py
+++ b/src/Generator.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
# $Id$
-from Error import GeneratorError, PublishError
+from Error import GeneratorError
from syslog import syslog, LOG_ERR
@@ -17,8 +17,8 @@ class Generator(object):
__build__ = {}
__requires__ = []
- def __init__(self, container):
- self.container=container
+ def __init__(self, core):
+ self.core=core
self.data="%s/%s"%(self.__datastore__,self.__name__)
self.PublishAll()
@@ -38,13 +38,13 @@ class Generator(object):
raise GeneratorError, ("Key",filename)
def Publish(self,key,value):
- self.container.Publish(self.__name__,key,value)
+ self.core.Publish(self.__name__,key,value)
def PublishAll(self):
pass
def Read(self,key):
- self.container.ReadValue(key)
+ self.core.ReadValue(key)
def ReadAll(self):
self.external = {}
@@ -60,52 +60,3 @@ class Generator(object):
'''Generate change notification for region'''
pass
-class PublishedValue(object):
- def __init__(self,owner,key,value):
- self.owner=owner
- self.key=key
- self.value=value
-
- def Update(self,owner,value):
- if owner != self.owner:
- raise PublishError, (self.key,owner)
- self.value=value
-
-class GeneratorContainer(object):
- def __init__(self):
- self.pubspace={}
- self.generators=[]
- # we need to setup publish, read interface
- # we need to inventory and setup generators
- pass
-
- def PublishValue(self,owner,key,value):
- if not self.pubspace.has_key(key):
- # This is a new entry
- self.pubspace[key]=PublishedValue(owner,key,value)
- else:
- # This is an old entry. Update can fai
- try:
- self.pubspace[key].Update(owner,value)
- except PublishError,e:
- syslog(LOG_ERR, "Publish conflict for %s. Owner %s, Modifier %s"%(key,self.pubspace[key].owner,owner))
-
- def ReadValue(self,key):
- if self.pubspace.has_key(key):
- return self.pubspace[key].value
- raise KeyError,key
-
- def LoadGenerators(self,genlist):
- for generator in genlist:
- self.generators.append(generator(self))
- for generator in self.generators:
- generator.CompleteSetup()
- self.handles={}
- for g in self.generators:
- for f in g.__build__.keys():
- self.handles[f]=g
-
- def GetConfigFile(self,filename,client):
- if self.handles.has_key(filename):
- return self.handles[filename].Build(filename,client)
- raise KeyError, filename