diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2004-06-30 15:03:30 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2004-06-30 15:03:30 +0000 |
commit | 3338f6fbf62a5bf5f9135fc3ea63ed5091a7f23f (patch) | |
tree | 19f66bb45872981206eefef81695212b994bb1f8 /src/BcfgServer.py | |
parent | 308717b0fa5ce5971e0aea3c00c6d699fc5f6c6f (diff) | |
download | bcfg2-3338f6fbf62a5bf5f9135fc3ea63ed5091a7f23f.tar.gz bcfg2-3338f6fbf62a5bf5f9135fc3ea63ed5091a7f23f.tar.bz2 bcfg2-3338f6fbf62a5bf5f9135fc3ea63ed5091a7f23f.zip |
bundler name update
2004/06/29 02:19:01-05:00 (none)!desai
add structure call to Core constructor
2004/06/14 11:14:11-05:00 anl.gov!desai
(Logical change 1.22)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@101 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/BcfgServer.py')
-rw-r--r-- | src/BcfgServer.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/BcfgServer.py b/src/BcfgServer.py index e69de29bb..746c9eb8a 100644 --- a/src/BcfgServer.py +++ b/src/BcfgServer.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# $Id: $ + +from Bcfg2.Core import Core +from Bcfg2.Metadata import Metadata + +from sss.restriction import DataSet, Data +from sss.server import Server + +class MetadataStore(object): + def __init__(self): + self.images = {'topaz':'debian-3.1'} + self.tags = {'laptop':['topaz']} + self.bundles = {'global':['ssh'], 'tags':{'laptop':[]}, 'hosts':{}} + + def GetMetadata(self, client): + tags = [k for (k,v) in self.tags.iteritems() if client in v] + bundles = self.bundles['global'] + self.bundles['hosts'].get(client,[]) + bundles += reduce(lambda x,y:x+y, map(lambda b:self.bundles.get(b,[]), tags)) + return Metadata(False, self.images[client], bundles, tags, client) + +class BcfgServer(Server): + __implementation__ = 'Bcfg2' + __component__ = 'bcfg2' + __dispatch__ = {'get-config':'GetConfig'} + __statefields__ = ['metadata'] + + def __setup__(self): + self.metadata = MetadataStore() + self.core=Core('/home/desai/data/b2',['bundler'],['sshbase','fstab','myri','cfg']) + self.__progress__() + + def __progress__(self): + while self.core.fam.fm.pending(): + self.core.fam.HandleEvent() + +if __name__ == '__main__': + server = BcfgServer() + |