Example #1
0
    def validate(self, tree):
        logger.info('Validating file "%s"...' % self.filename)

        validation = True
        if LXML:
            dtdfile = os.path.join(os.path.dirname(__file__), 'cnml.dtd')
            try:
                with open(dtdfile, 'rb') as dtdfp:
                    dtd = etree.DTD(dtdfp)

                logger.info('DTD validation: %s' % dtd.validate(tree))
                errors = dtd.error_log.filter_from_errors()
                if len(errors) > 0:
                    logger.warning('%d errors found:' % len(errors))
                    logger.warning(errors)
                    validation = False

            except IOError:
                logger.error('DTD Validation failed: %s file not found' % dtdfile)
                validation = False

        else:
            logger.warn('DTD validation is not implemented with Minidom API')
            validation = False

        return validation
Example #2
0
    def validateDTDLxml(self, tree):
        validation = True
        dtdfile = os.path.join(os.path.dirname(__file__), 'cnml.dtd')
        try:
            with open(dtdfile, 'rb') as dtdfp:
                dtd = etree.DTD(dtdfp)

            logger.info('DTD validation: %s' % dtd.validate(tree))
            errors = dtd.error_log.filter_from_errors()
            if len(errors) > 0:
                logger.warning('%d errors found:' % len(errors))
                logger.warning(errors)
                validation = False

        except IOError:
            logger.error('DTD Validation failed: %s file not found' % dtdfile)
            validation = False
        return validation
Example #3
0
    def setLinkedParameters(self, devs, ifaces, nodes):
        didA = self.deviceA
        iidA = self.interfaceA
        nidA = self.nodeA
        didB = self.deviceB
        iidB = self.interfaceB
        nidB = self.nodeB

        if self.nodeB is None:
            #logger.info("Couldn't find linked node (%d) in link %d. It may be defined in a different CNML zone." % (self.nodeA, self.id))
            return

        if didA in devs:
            self.deviceA = devs[didA]
        else:
            logger.warning('Device id %d not found' % self.deviceA)

        if didB in devs:
            self.deviceB = devs[didB]
        else:
            logger.warning('Device id %d not found' % self.deviceB)

        if iidA in ifaces:
            self.interfaceA = ifaces[iidA]
        else:
            logger.warning('Interface id %d not found' % self.interfaceA)

        if iidB in ifaces:
            self.interfaceB = ifaces[iidB]
        else:
            logger.warning('Interface id %d not found' % self.interfaceB)

        if nidA in nodes:
            self.nodeA = nodes[nidA]
        else:
            logger.warning('Node id %d not found' % self.nodeA)

        if nidB in nodes:
            self.nodeB = nodes[nidB]
        else:
            logger.warning('Node id %d not found' % self.nodeB)