class DirectoryService(BaseDirectoryService):

    """
    Provides a directory of services and other resources specific to an Org.
    """

    def on_init(self):
        self.directory = Directory()
        # For easier interactive debugging
        self.dss = None
        self.ds = self.directory.datastore
        try:
            self.dss = self.directory.datastore.server[self.directory.datastore.datastore_name]
        except Exception:
            pass

    def register(self, parent='/', key='', attributes={}):
        return self.directory.register(parent, key, **attributes)

    def unregister(self, parent='/', key=''):
        return self.directory.unregister(parent, key)

    def lookup(self, qualified_key=''):
        return self.directory.lookup(qualified_key)

    def find(self, parent='/', pattern=''):
        raise NotImplementedError()
Exemple #2
0
    def test_non_persistent(self):
        directory_service = Directory()

        root = directory_service.lookup("/")
        self.assertEquals(root, None)

        self.assertEquals(directory_service.register("/","temp"), None)

        # Create a node
        root = directory_service.lookup("/temp")
        self.assertEquals(root, {} )

        # The create case
        entry_old = directory_service.register("/temp", "entry1", foo="awesome")
        self.assertEquals(entry_old, None)
        entry_new = directory_service.lookup("/temp/entry1")
        self.assertEquals(entry_new, {"foo":"awesome"})

        # The update case
        entry_old = directory_service.register("/temp", "entry1", foo="ingenious")
        self.assertEquals(entry_old, {"foo":"awesome"})

        # The delete case
        entry_old = directory_service.unregister("/temp", "entry1")
        self.assertEquals(entry_old, {"foo":"ingenious"})
        entry_new = directory_service.lookup("/temp/entry1")
        self.assertEquals(entry_new, None)