diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2005-07-13 19:26:11 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2005-07-13 19:26:11 +0000 |
commit | 84607ab721061a0930db5342df9b18bf88e70e2a (patch) | |
tree | e69145fcffb80ef08636a8866dc07e8604c28b28 /src/sbin/ValidateBcfg2Repo | |
parent | 3e5b92652e9ec2ef6b46444c456af150bc44ecaa (diff) | |
download | bcfg2-84607ab721061a0930db5342df9b18bf88e70e2a.tar.gz bcfg2-84607ab721061a0930db5342df9b18bf88e70e2a.tar.bz2 bcfg2-84607ab721061a0930db5342df9b18bf88e70e2a.zip |
Rename: tools/ValidateBcfg2Repo -> src/sbin/ValidateBcfg2Repo
(Logical change 1.257)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1060 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/sbin/ValidateBcfg2Repo')
-rw-r--r-- | src/sbin/ValidateBcfg2Repo | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/sbin/ValidateBcfg2Repo b/src/sbin/ValidateBcfg2Repo index e69de29bb..32385c1cb 100644 --- a/src/sbin/ValidateBcfg2Repo +++ b/src/sbin/ValidateBcfg2Repo @@ -0,0 +1,40 @@ +#!/usr/bin/env python + +from glob import glob +from sys import argv, exit +from validate import validate, ValidationException +from ConfigParser import ConfigParser + +if __name__ == '__main__': + cf = ConfigParser() + cf.read(['/etc/bcfgd.conf']) + try: + repo = cf.get('server', 'repository') + except: + if len(argv) == 1: + print "Usage: validate_repo <repo directory>" + raise SystemExit, 1 + repo = argv[1] + if len(argv) == 3: + schemadir = argv[2] + else: + schemadir = '/usr/share/bcfg2/schemas' + + # add more validation as more schemas get written + filesets = {'metadata':("%s/etc/metadata.xml", "%s/metadata.xsd"), + 'bundle':("%s/Bundler/*.xml", "%s/bundle.xsd"), + 'pkglist':("%s/Pkgmgr/*.xml", "%s/pkglist.xsd"), + 'base':("%s/etc/base.xml", "%s/base.xsd"), + 'imageinfo':("%s/etc/imageinfo.xml", "%s/translation.xsd"), + 'imageinfo':("%s/etc/reports.xml", "%s/report-configuration.xsd"), + 'services':("%s/etc/services.xml", "%s/services.xsd")} + + for k, (spec, schema) in filesets.iteritems(): + for filename in glob(spec%(repo)): + try: + validate(open(filename).read(), schema%(schemadir)) + print "%s checks out"%(filename) + except ValidationException, v: + print "file %s fails to verify:\n%s"%(filename, v) + except IOError: + print "failed to open file %s"%(filename) |