From 3338f6fbf62a5bf5f9135fc3ea63ed5091a7f23f Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Wed, 30 Jun 2004 15:03:30 +0000 Subject: 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 --- src/BcfgServer.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'src') 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() + -- cgit v1.2.3-1-g7c22