summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--schemas/metadata.xsd34
-rwxr-xr-xsrc/sbin/bcfg2-repo-validate16
2 files changed, 26 insertions, 24 deletions
diff --git a/schemas/metadata.xsd b/schemas/metadata.xsd
index 7385f10f9..4432aa5d6 100644
--- a/schemas/metadata.xsd
+++ b/schemas/metadata.xsd
@@ -7,7 +7,10 @@
$Id$
</xsd:documentation>
</xsd:annotation>
-
+
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
<xsd:simpleType name='toolsetType'>
<xsd:restriction base="xsd:string">
<xsd:pattern value="rh|debian|solaris|aix|gentoo|auto"/>
@@ -42,20 +45,17 @@
<xsd:attribute type='xsd:string' name='category' use='optional'/>
<xsd:attribute type='xsd:string' name='comment' use='optional'/>
</xsd:complexType>
-
- <xsd:element name='Groups'>
- <xsd:complexType>
- <xsd:choice minOccurs='0' maxOccurs='unbounded'>
- <xsd:element name='Group' type='groupType'/>
- <xsd:element name='Groups'>
- <xsd:complexType>
- <xsd:choice>
- <xsd:element name='Group' type='groupType'/>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- <xsd:attribute name='version' type='xsd:string'/>
- </xsd:complexType>
- </xsd:element>
+
+ <xsd:complexType name='groupsType'>
+ <xsd:choice minOccurs='0' maxOccurs='unbounded'>
+ <xsd:element name='Group' type='groupType'/>
+ <xsd:element name='Groups' type='groupsType'/>
+ </xsd:choice>
+ <xsd:attribute name='version' type='xsd:string'/>
+ <xsd:attribute name='origin' type='xsd:string'/>
+ <xsd:attribute name='revision' type='xsd:string'/>
+ <xsd:attribute ref='xml:base'/>
+ </xsd:complexType>
+
+ <xsd:element name='Groups' type='groupsType'/>
</xsd:schema>
diff --git a/src/sbin/bcfg2-repo-validate b/src/sbin/bcfg2-repo-validate
index ab835f0a1..203a5556a 100755
--- a/src/sbin/bcfg2-repo-validate
+++ b/src/sbin/bcfg2-repo-validate
@@ -20,8 +20,6 @@ if __name__ == '__main__':
prefix = cf.get('server', 'prefix')
except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
prefix = '/usr'
- if verbose:
- print "Using installation prefix %s" % (prefix)
schemadir = "%s/share/bcfg2/schemas" % (prefix)
os.chdir(schemadir)
@@ -44,8 +42,6 @@ if __name__ == '__main__':
failures = 0
for k, (spec, schemaname) in filesets.iteritems():
try:
- if verbose:
- print "Processing schema %s" % (schemaname % (schemadir))
schema = lxml.etree.XMLSchema(lxml.etree.parse(open(schemaname%(schemadir))))
except:
print "Failed to process schema %s" % (schemaname%(schemadir))
@@ -67,7 +63,13 @@ if __name__ == '__main__':
if verbose:
print "%s checks out" % (filename)
else:
- print "%s ***FAILS*** to verify \t\t<----" % (filename)
- os.system("xmllint --xinclude --schema %s %s" % (schemaname % schemadir, filename))
- failures = 1
+ rc = os.system("xmllint --noout --xinclude --schema %s %s > /dev/null 2>/dev/null" % \
+ (schemaname % schemadir, filename))
+ if rc:
+ failures = 1
+ print "%s ***FAILS*** to verify \t\t<----" % (filename)
+ os.system("xmllint --noout --xinclude --schema %s %s" % \
+ (schemaname % schemadir, filename))
+ elif verbose:
+ print "%s checks out" % (filename)
raise SystemExit, failures