summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2004-06-30 15:03:30 +0000
committerNarayan Desai <desai@mcs.anl.gov>2004-06-30 15:03:30 +0000
commit3338f6fbf62a5bf5f9135fc3ea63ed5091a7f23f (patch)
tree19f66bb45872981206eefef81695212b994bb1f8 /src
parent308717b0fa5ce5971e0aea3c00c6d699fc5f6c6f (diff)
downloadbcfg2-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')
-rw-r--r--src/BcfgServer.py39
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()
+