Beispiel #1
0
 def test3(self):
     """ test wether will fallback only down 2 primary node """
     self.skipTest("disable acorrding to current behavior")
     return
     proxy = BeansDBProxy([self.proxy_addr])
     self.backend1.stop()
     #        self.backend2.stop()
     key3 = 'key3'
     i = 0
     store4 = MCStore(self.backend4_addr)
     ts_start = time.time()
     fallbacked = False
     while i < 2000:
         i += 1
         data3 = random_string(10)
         proxy.set(key3, data3)
         self.assertEqual(proxy.get(key3), data3)
         #            time.sleep(0.1)
         data3_ = store4.get(key3)
         if data3_ is None:
             print "store4 get nothing yet, round=", i
         else:
             print "fallbacked to store4 after %s tries" % (i)
             fallbacked = True
             self.assertEqual(data3_, data3)
             break
     ts_stop = time.time()
     if not fallbacked:
         self.fail("still not fallback to backend 4")
     print "%s seconds passed" % (ts_stop - ts_start)
     self.backend1.start()
     self.assert_(proxy.exists("key3"))
     store1 = MCStore(self.backend1_addr)
     self.assert_(store1.get("key3") is None)
     data3 = random_string(10)
     ts_recover_start = time.time()
     i = 0
     recovered = False
     while i < 2000:
         #data3 = random_string(10)
         i += 1
         #            time.sleep(0.1)
         proxy.set(key3, data3)
         self.assertEqual(proxy.get(key3), data3)
         data3_ = store1.get(key3)
         if data3_ is None:
             print "store1 get nothing yet, round=", i
         else:
             print "recover to store1 after %s tries, %s sec" % (
                 i, time.time() - ts_recover_start)
             recovered = True
             self.assertEqual(data3_, data3)
             break
     if not recovered:
         self.fail("still not fallback to backend 1")
Beispiel #2
0
    def test3(self):
        """ test wether will fallback only down 2 primary node """
        self.skipTest("disable acorrding to current behavior")
        return
        proxy = BeansDBProxy([self.proxy_addr])
        self.backend1.stop()
#        self.backend2.stop()
        key3 = 'key3'
        i = 0
        store4 = MCStore(self.backend4_addr)
        ts_start = time.time()
        fallbacked = False
        while i < 2000:
            i += 1
            data3 = random_string(10)
            proxy.set(key3, data3)
            self.assertEqual(proxy.get(key3), data3)
#            time.sleep(0.1)
            data3_ = store4.get(key3)
            if data3_ is None:
                print "store4 get nothing yet, round=", i
            else:
                print "fallbacked to store4 after %s tries" % (i)
                fallbacked = True
                self.assertEqual(data3_, data3)
                break
        ts_stop = time.time()
        if not fallbacked:
            self.fail("still not fallback to backend 4")
        print "%s seconds passed" % (ts_stop - ts_start)
        self.backend1.start()
        self.assert_(proxy.exists("key3"))
        store1 = MCStore(self.backend1_addr)
        self.assert_(store1.get("key3") is None)
        data3 = random_string(10)
        ts_recover_start = time.time()
        i = 0
        recovered = False
        while i < 2000:
            #data3 = random_string(10)
            i += 1
#            time.sleep(0.1)
            proxy.set(key3, data3)
            self.assertEqual(proxy.get(key3), data3)
            data3_ = store1.get(key3)
            if data3_ is None:
                print "store1 get nothing yet, round=", i
            else:
                print "recover to store1 after %s tries, %s sec" % (i, time.time() - ts_recover_start)
                recovered = True
                self.assertEqual(data3_, data3)
                break
        if not recovered:
            self.fail("still not fallback to backend 1")
Beispiel #3
0
 def _assert_data(self, addr, key, data, mesg=None):
     store = MCStore(addr) 
     self.assertEqual(store.get(key), data, mesg)