summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2004-10-29 19:17:41 +0000
committerNarayan Desai <desai@mcs.anl.gov>2004-10-29 19:17:41 +0000
commit9e48307b56509b903646e582f9c8445c50ab921c (patch)
tree69ff9eda399bd7a9309b18000a9ad8b04e7cf5ca /tools
parent628eb036becf036a897f240cbc0a6e65cd83e399 (diff)
downloadbcfg2-9e48307b56509b903646e582f9c8445c50ab921c.tar.gz
bcfg2-9e48307b56509b903646e582f9c8445c50ab921c.tar.bz2
bcfg2-9e48307b56509b903646e582f9c8445c50ab921c.zip
add default schema location
2004/10/29 14:01:36-05:00 anl.gov!desai Rename: tools/validate_repo -> tools/ValidateBcfg2Repo (Logical change 1.124) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@563 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'tools')
-rw-r--r--tools/ValidateBcfg2Repo34
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/ValidateBcfg2Repo b/tools/ValidateBcfg2Repo
index e69de29bb..eef43af70 100644
--- a/tools/ValidateBcfg2Repo
+++ b/tools/ValidateBcfg2Repo
@@ -0,0 +1,34 @@
+#!/usr/bin/env python
+
+from glob import glob
+from sys import argv, exit
+from validate import validate, ValidationException
+
+if __name__ == '__main__':
+ try:
+ repo = argv[1]
+ if len(argv) == 3:
+ schemadir = argv[2]
+ else:
+ schemadir = '/usr/share/bcfg2/schemas'
+ except:
+ print "Usage: validate_repo <repo directory> <schema directory>"
+ exit(1)
+
+ # 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"),
+ '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)