示例#1
0
 def expireZookeeperSession(self, requestContext, timeout):
     result = False
     if settings.ENV == "default" or \
             settings.ENV == "test":
         result = expire_zookeeper_client_session(self.zookeeper_client,
                                                  timeout)
     return result
    def test_session_expiration(self):
        expired_session_hashring = []

        def observer(event):
            if event.state_name == "EXPIRED_SESSION_STATE":
                hashring = self.hashring_watch.hashring()
                expired_session_hashring.append(hashring)

        #add session observer for testing
        self.zookeeper_client.add_session_observer(observer)

        expired_result = expire_zookeeper_client_session(
            self.zookeeper_client, 10)
        self.assertEqual(expired_result, True)
        gevent.sleep(1)

        self.assertEqual(len(expired_session_hashring[0]), 0)
        hashring = self.hashring_watch.hashring()
        self.assertEqual(len(hashring), 3)
        self.assertEqual(hashring[0].token, 0x0)
        self.assertEqual(hashring[1].token, 0xcfcd208495d565ef66e7dff9f98764da)
        self.assertEqual(hashring[2].token, 0xf899139df5e1059396431415e770c6dd)

        preference_list = self.hashring_watch.preference_list('0')
        self.assertEqual(preference_list[0].token,
                         0xf899139df5e1059396431415e770c6dd)
        self.assertEqual(preference_list[1].token, 0x0)
        self.assertEqual(preference_list[2].token,
                         0xcfcd208495d565ef66e7dff9f98764da)
        self.zookeeper_client.remove_session_observer(observer)
    def test_session_expiration(self):
        expired_session_hashring = []

        def observer(event):
            if event.state_name == "EXPIRED_SESSION_STATE":
                hashring = self.hashring_watch.hashring()
                expired_session_hashring.append(hashring)
        #add session observer for testing
        self.zookeeper_client.add_session_observer(observer)

        expired_result = expire_zookeeper_client_session(self.zookeeper_client, 10)
        self.assertEqual(expired_result, True)
        gevent.sleep(1)
        
        self.assertEqual(len(expired_session_hashring[0]), 0)
        hashring = self.hashring_watch.hashring()
        self.assertEqual(len(hashring), 3)
        self.assertEqual(hashring[0].token, 0x0)
        self.assertEqual(hashring[1].token, 0xcfcd208495d565ef66e7dff9f98764da)
        self.assertEqual(hashring[2].token, 0xf899139df5e1059396431415e770c6dd)

        preference_list = self.hashring_watch.preference_list('0')
        self.assertEqual(preference_list[0].token, 0xf899139df5e1059396431415e770c6dd)
        self.assertEqual(preference_list[1].token, 0x0)
        self.assertEqual(preference_list[2].token, 0xcfcd208495d565ef66e7dff9f98764da)
        self.zookeeper_client.remove_session_observer(observer)
    def test_proxy(self):
        proxy = ZookeeperServiceProxy(self.zookeeper_client,
                                      self.service.info().name)

        version = proxy.getVersion(self.request_context)
        self.assertEqual(version, "VERSION")

        expired = expire_zookeeper_client_session(self.zookeeper_client, 10)
        self.assertEqual(expired, True)
        gevent.sleep(1)

        version = proxy.getVersion(self.request_context)
        self.assertEqual(version, "VERSION")
    def test_proxy(self):
        proxy = ZookeeperServiceProxy(
                self.zookeeper_client,
                self.service.info().name)

        version = proxy.getVersion(self.request_context)
        self.assertEqual(version, "VERSION")

        expired = expire_zookeeper_client_session(self.zookeeper_client, 10)
        self.assertEqual(expired, True)
        gevent.sleep(1)
    
        version = proxy.getVersion(self.request_context)
        self.assertEqual(version, "VERSION")
    def test_session_expiration(self):
        expired_session_data = []

        def observer(event):
            if event.state_name == "EXPIRED_SESSION_STATE":
                expired_session_data.append(self.watch.get_data())
        #add session observer for testing
        self.zookeeper_client.add_session_observer(observer)

        count = self.watch_observer_count
        
        expired_result = expire_zookeeper_client_session(self.zookeeper_client, 10)
        self.assertEqual(expired_result, True)
        gevent.sleep(1)

        self.assertEqual(expired_session_data[0], None)
        self.assertEqual(self.watch_observer_count, count+1)
        data = self.watch.get_data()
        self.assertEqual(data, self.watch_data)
        self.assertEqual(self.watch_observer_data, self.watch_data)
    def test_session_expiration(self):
        expired_session_data = []

        def observer(event):
            if event.state_name == "EXPIRED_SESSION_STATE":
                expired_session_data.append(self.watch.get_data())

        #add session observer for testing
        self.zookeeper_client.add_session_observer(observer)

        count = self.watch_observer_count

        expired_result = expire_zookeeper_client_session(
            self.zookeeper_client, 10)
        self.assertEqual(expired_result, True)
        gevent.sleep(1)

        self.assertEqual(expired_session_data[0], None)
        self.assertEqual(self.watch_observer_count, count + 1)
        data = self.watch.get_data()
        self.assertEqual(data, self.watch_data)
        self.assertEqual(self.watch_observer_data, self.watch_data)
    def test_session_expiration(self):
        expired_session_children = {}

        def observer(event):
            if event.state_name == "EXPIRED_SESSION_STATE":
                expired_session_children.update(self.watch.get_children())
        #add session observer for testing
        self.zookeeper_client.add_session_observer(observer)

        count = self.watch_observer_count

        expired_result = expire_zookeeper_client_session(self.zookeeper_client, 10)
        self.assertEqual(expired_result, True)
        gevent.sleep(1)
        
        self.assertEqual(len(expired_session_children), 0)
        self.assertEqual(self.watch_observer_count, count+1)
        children = self.watch.get_children()
        self.assertEqual(children, self.watch_observer_children)
        self.assertEqual(len(children), len(self.children))
        for child, child_data in self.children:
            self.assertEqual(children[child][0], child_data)
    def test_session_expiration(self):
        #unregister service since the registration is associated with
        #service zookeeper client, and we're going to cause a 
        #session expiration on self.zookeeper_client.
        self.registrar.unregister_service(self.service)
        gevent.sleep(1)
        service_info = self.registrar.locate_service("unittestsvc")
        self.assertIsNone(service_info)

        #register now with self.registar which is associated with
        #self.zookeeper_client.
        self.registrar.register_service(self.service)

        expired = expire_zookeeper_client_session(self.zookeeper_client, 10)
        self.assertEqual(expired, True)
        gevent.sleep(1)

        #verify registration following session expiration
        service_info = self.registrar.locate_service("unittestsvc")
        self.assertIsNotNone(service_info)
        self.assertEqual(service_info.name, "unittestsvc")
        self.assertEqual(service_info.default_endpoint().port, 10090)
        self.assertEqual(len(self.registrar.find_services("unittestsvc")), 1)
    def test_session_expiration(self):
        path = "/unittest_expiration"
        ephemeral_path = "/unittest_expiration_ephemeral"
        data = "unittest_data"
        expired = []

        if self.zookeeper_client.exists(path):
            self.zookeeper_client.delete(path)

        self.zookeeper_client.create(path, data, ephemeral=False)
        self.zookeeper_client.create(ephemeral_path, data, ephemeral=True)
        rdata, rstat = self.zookeeper_client.get_data(path)
        self.assertEqual(rdata, data)

        def observer(event):
            if event.state_name == "EXPIRED_SESSION_STATE":
                expired.append(True)

        #add session observer for testing
        self.zookeeper_client.add_session_observer(observer)

        expired_result = expire_zookeeper_client_session(
            self.zookeeper_client, 10)
        self.assertEqual(expired_result, True)
        gevent.sleep(1)

        #verify expiration took place
        self.assertEqual(len(expired), 1)

        #verify ephemeral node no longer exists
        with self.assertRaises(zookeeper.NoNodeException):
            self.zookeeper_client.get_data(ephemeral_path)

        #verify non-ephemeral node still exists
        rdata, rstat = self.zookeeper_client.get_data(path)
        self.assertEqual(rdata, data)
        self.zookeeper_client.delete(path)
    def test_session_expiration(self):
        path = "/unittest_expiration"
        ephemeral_path = "/unittest_expiration_ephemeral"
        data = "unittest_data"
        expired = []

        if self.zookeeper_client.exists(path):
            self.zookeeper_client.delete(path)

        self.zookeeper_client.create(path, data, ephemeral=False)
        self.zookeeper_client.create(ephemeral_path, data, ephemeral=True)
        rdata, rstat = self.zookeeper_client.get_data(path)
        self.assertEqual(rdata, data)

        def observer(event):
            if event.state_name == "EXPIRED_SESSION_STATE":
                expired.append(True)

        #add session observer for testing
        self.zookeeper_client.add_session_observer(observer)
        
        expired_result = expire_zookeeper_client_session(self.zookeeper_client, 10)
        self.assertEqual(expired_result, True)
        gevent.sleep(1)

        #verify expiration took place
        self.assertEqual(len(expired), 1)

        #verify ephemeral node no longer exists
        with self.assertRaises(zookeeper.NoNodeException):
            self.zookeeper_client.get_data(ephemeral_path)

        #verify non-ephemeral node still exists
        rdata, rstat = self.zookeeper_client.get_data(path)
        self.assertEqual(rdata, data)
        self.zookeeper_client.delete(path)
    def test_session_expiration(self):
        expired_session_children = {}

        def observer(event):
            if event.state_name == "EXPIRED_SESSION_STATE":
                expired_session_children.update(self.watch.get_children())

        #add session observer for testing
        self.zookeeper_client.add_session_observer(observer)

        count = self.watch_observer_count

        expired_result = expire_zookeeper_client_session(
            self.zookeeper_client, 10)
        self.assertEqual(expired_result, True)
        gevent.sleep(1)

        self.assertEqual(len(expired_session_children), 0)
        self.assertEqual(self.watch_observer_count, count + 1)
        children = self.watch.get_children()
        self.assertEqual(children, self.watch_observer_children)
        self.assertEqual(len(children), len(self.children))
        for child, child_data in self.children:
            self.assertEqual(children[child][0], child_data)
示例#13
0
 def expireZookeeperSession(self, requestContext, timeout):
     result = False
     if settings.ENV == "default" or \
             settings.ENV == "test":
         result = expire_zookeeper_client_session(self.zookeeper_client, timeout)
     return result