4606: add: you can not have an absolute path to sc_manifest in the criteria manifest.
--- a/usr/src/cmd/ai-webserver/publish-manifest.py Mon Dec 15 12:37:05 2008 -0700
+++ b/usr/src/cmd/ai-webserver/publish-manifest.py Mon Dec 15 20:37:17 2008 -0700
@@ -621,7 +621,7 @@
# if this is an absolute path just hand it off
if os.path.isabs(str(SCman.attrib['URI'])):
self._smfDict[SCman.attrib['name']] = \
- self.verifySCmanifest(self, SCman.attrib['URI'])
+ self.verifySCmanifest(SCman.attrib['URI'])
# this is not an absolute path - make it one
else:
self._smfDict[SCman.attrib['name']] = \
@@ -707,7 +707,11 @@
def verifyAImanifest(self):
"""
- Used for verifying and loading AI manifest
+ Used for verifying and loading AI manifest as defined by
+ DataFiles.AIschema.
+ Input: None.
+ Output (Result): Sets DataFiles._AIRoot on success to a LXML XML Tree
+ object or raise SystemExit on error.
"""
try:
schema = file(self.AIschema, 'r')
@@ -739,12 +743,19 @@
def verifySCmanifest(self, data, name = None):
"""
Used for verifying and loading SC manifest
+ Input: File path, or StringIO object. Optionally, takes a name to
+ provide in error output, as a StringIO object will not have a file
+ path to provide.
+ Output: Provide a LXML XML Tree object or raise a SystemExit on error.
"""
if not isinstance(data, StringIO.StringIO):
try:
data = file(data, 'r')
except IOError:
- raise SystemExit(_("Error:\tCan not open: %s") % data)
+ if name is None:
+ raise SystemExit(_("Error:\tCan not open: %s") % data)
+ else:
+ raise SystemExit(_("Error:\tCan not open: %s") % name)
xmlRoot = verifyXML.verifyDTDManifest(data,self.smfDtd)
if isinstance(xmlRoot, list):
if not isinstance(data, StringIO.StringIO):
--- a/usr/src/cmd/ai-webserver/verifyXML.py Mon Dec 15 12:37:05 2008 -0700
+++ b/usr/src/cmd/ai-webserver/verifyXML.py Mon Dec 15 20:37:17 2008 -0700
@@ -37,7 +37,7 @@
"""
result = list()
parser = lxml.etree.XMLParser(load_dtd = False, no_network=True,
- dtd_validation=False)
+ dtd_validation=False)
dtd = lxml.etree.DTD(os.path.abspath(xml_dtd))
try:
root = lxml.etree.parse(data, parser)