Esempio n. 1
0
    def get_object(self, session, id):
        """Return the object with the given id.

        Searches first within this object's scope, or search upwards for it.
        """
        if (id in self.objects):
            return self.objects[id]
        else:
            config = self.get_config(session, id)
            if config is not None:
                try:
                    obj = dynamic.makeObjectFromDom(session, config, self)
                except (ConfigFileException, AttributeError, ImportError):
                    # Push back up as is
                    self.log_critical(session,
                                      "... while trying to build object with "
                                      "id '%s'" % id)
                    self.log_critical(session,
                                      "... while getting it from object "
                                      "'%s'" % (self.id))
                    raise
                return obj
            elif (self.parent is not None):
                return self.parent.get_object(session, id)
            else:
                raise ObjectDoesNotExistException(id)
Esempio n. 2
0
 def test_makeObjectFromDom(self):
     "Check processing objects can be created from a parsed configs."
     for objectType in self._get_objectTypes():
         if "Store" in objectType:
             # Don't build Stores - creates empty BDB files
             continue
         config = self._get_configFromObjectType(objectType)
         try:
             obj = makeObjectFromDom(self.session,
                                     config,
                                     self.server)
         except Exception as e:
             self.assertIsInstance(e,
                                   (ConfigFileException,
                                    NotImplementedError,
                                    MissingDependencyException),
                                   "When failing to makeObjectFromDom for "
                                   "type '{0}' {1} is raised. Should be "
                                   "one of: ConfigFileException, "
                                   "NotImplementedError, "
                                   "MissingDependencyException"
                                   "".format(objectType,
                                             e.__class__.__name__)
                                   )
         else:
             modName = objectType.split('.')[1]
             expCls = getattr(baseObjects, modName[0].upper() + modName[1:])
             self.assertIsInstance(obj, expCls)
Esempio n. 3
0
 def setUp(self):
     self.session = Session()
     serverConfig = os.path.join(cheshire3Root, 'configs',
                                 'serverConfig.xml')
     self.server = SimpleServer(self.session, serverConfig)
     for config in self._get_dependencyConfigs():
         identifier = config.get('id')
         self.server.subConfigs[identifier] = config
     # Disable stdout logging
     lgr = self.server.get_path(self.session, 'defaultLogger')
     lgr.minLevel = 60
     # Create object that will be tested
     config = self._get_config()
     self.testObj = makeObjectFromDom(self.session, config, self.server)
Esempio n. 4
0
    def _processRecord(self, session, id, rec):
        # Split from fetch_object for Iterators
        dom = rec.get_dom(session)

        if hasattr(dom, "childNodes"):
            for d in dom.childNodes:
                if d.nodeType == elementType:
                    topNode = d
                    break
        else:
            # LXML
            topNode = dom

        object = dynamic.makeObjectFromDom(session, topNode, self)
        return object
Esempio n. 5
0
    def _processRecord(self, session, id, rec):
        # Split from fetch_object for Iterators
        dom = rec.get_dom(session)

        if (hasattr(dom, 'childNodes')):
            for d in dom.childNodes:
                if d.nodeType == elementType:
                    topNode = d
                    break
        else:
            # LXML
            topNode = dom

        object = dynamic.makeObjectFromDom(session, topNode, self)
        return object
Esempio n. 6
0
 def setUp(self):
     self.session = Session()
     serverConfig = os.path.join(cheshire3Root,
                                 'configs',
                                 'serverConfig.xml')
     self.server = SimpleServer(self.session, serverConfig)
     for config in self._get_dependencyConfigs():
         identifier = config.get('id')
         self.server.subConfigs[identifier] = config
     # Disable stdout logging
     lgr = self.server.get_path(self.session, 'defaultLogger')
     lgr.minLevel = 60
     # Create object that will be tested
     config = self._get_config()
     self.testObj = makeObjectFromDom(self.session, config, self.server)
Esempio n. 7
0
 def test_makeObjectFromDom(self):
     "Check processing objects can be created from a parsed configs."
     for objectType in self._get_objectTypes():
         if "Store" in objectType:
             # Don't build Stores - creates empty BDB files
             continue
         config = self._get_configFromObjectType(objectType)
         try:
             obj = makeObjectFromDom(self.session, config, self.server)
         except Exception as e:
             self.assertIsInstance(
                 e, (ConfigFileException, NotImplementedError,
                     MissingDependencyException),
                 "When failing to makeObjectFromDom for "
                 "type '{0}' {1} is raised. Should be "
                 "one of: ConfigFileException, "
                 "NotImplementedError, "
                 "MissingDependencyException"
                 "".format(objectType, e.__class__.__name__))
         else:
             modName = objectType.split('.')[1]
             expCls = getattr(baseObjects, modName[0].upper() + modName[1:])
             self.assertIsInstance(obj, expCls)