diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2004-08-10 21:16:10 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2004-08-10 21:16:10 +0000 |
commit | 7a33177fca8c028badbdf682208e30d713a1ff1e (patch) | |
tree | 38d028f19606004fb76aec11bb278efe50b02233 /src/bcfg2meta | |
parent | 68b399fa374665be21053eaf13aaff634f164a86 (diff) | |
download | bcfg2-7a33177fca8c028badbdf682208e30d713a1ff1e.tar.gz bcfg2-7a33177fca8c028badbdf682208e30d713a1ff1e.tar.bz2 bcfg2-7a33177fca8c028badbdf682208e30d713a1ff1e.zip |
(Logical change 1.29)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@146 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/bcfg2meta')
-rw-r--r-- | src/bcfg2meta | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/bcfg2meta b/src/bcfg2meta index e69de29bb..4b5e94a97 100644 --- a/src/bcfg2meta +++ b/src/bcfg2meta @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +# $Id: $ + +from getopt import getopt, GetoptError +from string import join +from sys import argv, exit + +from Metadata import MetadataStore + +def dgetopt(arglist, opt, vopt): + r = {} + for o in opt.values() + vopt.values(): + r[o] = False + gstr = join(opt.keys()) + join([x+':' for x in vopt.keys()]) + try: + (o, a) = getopt(arglist, gstr) + except GetoptError, g: + print g + print "bcfg2 Usage:" + for (k,v) in opt.iteritems(): + print " -%s %s"%(k,v) + for (k,v) in vopt.iteritems(): + print " -%s <%s>"%(k,v) + exit(1) + for (gopt,garg) in o: + option = gopt[1:] + if opt.has_key(option): + r[opt[option]] = True + else: + r[vopt[option]] = garg + return r + +class StaticMetadataStore(MetadataStore): + def __init__(self, filename): + self.data = open(filename).read() + self.Index() + +if __name__ == '__main__': + vopts = {'g':'get', 's':'set', 'i':'image', 'c':'classes'} + setup = dgetopt(argv[1:], {}, vopts) + + ops = filter(lambda x:setup[x], ['get','set']) + if len(filter(lambda x:setup[x], ['get','set'])) != 1: + print "confused" + exit(1) + + op = ops[0] + + data = StaticMetadataStore('/home/desai/data/b2/common/metadata.xml') + + client = setup[op] + + if op == 'get': + if data.clients.has_key(client): + m = data.clients[client] + print "Host: %s\t\tImage: %s\n\tClasses: %s\n\tBundles: %s"%(client, m.image, join(m.classes,','), join(m.bundles,',')) |