From 97ee9e654ac62cb591f29529e39dd9ad61d74c9e Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Wed, 11 Aug 2004 19:54:35 +0000 Subject: Rename: src/Generator.py -> src/lib/Server/Generator.py (Logical change 1.33) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@169 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Generator.py | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/lib/Server/Generator.py b/src/lib/Server/Generator.py index e69de29bb..eb66404a2 100644 --- a/src/lib/Server/Generator.py +++ b/src/lib/Server/Generator.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# $Id$ + +from Error import GeneratorError + +from syslog import syslog, LOG_ERR + +class Generator(object): + '''This is a class that generators can be subclassed from. + __name__, __version__, and __author__ must be set for the module + __provides__ is a dictionary mapping listing the entity type and name to a function name + __requires__ is a set of external published data needed for operation''' + + __name__ = None + __version__ = None + __provides__ = {} + __requires__ = [] + + def __init__(self, core, datastore): + self.core = core + self.data = "%s/%s"%(datastore,self.__name__) + self.__setup__() + + def __setup__(self): + '''This method must be overloaded during subclassing. + All module specific setup, including all publication, occurs here.''' + + def CompleteSetup(self): + self.ReadAll() + print "%s loaded"%(self.__version__) + + def Cron(self): + '''Cron defines periodic tasks to maintain data coherence''' + pass + + def Publish(self,key,value): + self.core.Publish(self.__name__,key,value) + + def Read(self,key): + self.core.ReadValue(key) + + def ReadAll(self): + self.external = {} + for field in self.__requires__: + self.external[field] = self.Read(field) + + def GetMetadata(self,client,field): + '''GetMetadata returns current metadata file client. Field can be one of: + image, tags, bundles''' + pass + + def Notify(self,region): + '''Generate change notification for region''' + pass + + def GetProbes(self, metadata): + return [] + + def AcceptProbeData(self, client, probedata): + return -- cgit v1.2.3-1-g7c22