Ejemplo n.º 1
0
 def get_by_id(cls, ids, parent=None):
     count = 0
     while count < settings.rotmodel["RETRY_ATTEMPTS"]:
         try:
             return db.Model.get_by_id(ids, parent)
         except db.Timeout():
             count += 1
             time.sleep(count * settings.rotmodel["RETRY_INTERVAL"])
     else:
         raise db.Timeout()
Ejemplo n.º 2
0
 def get(cls, keys):
     count = 0
     while count < settings.rotmodel["RETRY_ATTEMPTS"]:
         try:
             return db.Model.get(keys)
         except db.Timeout():
             count += 1
             time.sleep(count * settings.rotmodel["RETRY_INTERVAL"])
     else:
         raise db.Timeout()
Ejemplo n.º 3
0
 def delete(self):
     count = 0
     while count < settings.rotmodel["RETRY_ATTEMPTS"]:
         try:
             return db.Model.delete(self)
         except db.Timeout():
             count += 1
             time.sleep(count * settings.rotmodel["RETRY_INTERVAL"])
     else:
         raise db.Timeout()
Ejemplo n.º 4
0
def test_timeout_1(**kwargs):
    counter = kwargs.get('counter')

    # Let it pass only in the last attempt
    if counter[0] < 3:
        counter[0] += 1
        raise db.Timeout()
Ejemplo n.º 5
0
def test_timeout_2(**kwargs):
    counter = kwargs.get('counter')

    # Let it pass only in the last attempt
    if counter[0] < 5:
        counter[0] += 1
        raise db.Timeout()

    raise ValueError()
Ejemplo n.º 6
0
 def put(self):
     count = 0
     while count < 3:
         try:
             return db.Model.put(self)
         except db.Timeout:
             count += 1
     else:
         raise db.Timeout()
Ejemplo n.º 7
0
 def put(self):
     count = 0
     while count < 3:
         try:
             ret = db.Model.put(self)
             if ret:
                 break
         except db.Timeout:
             count += 1
     else:
         raise db.Timeout()
     remove(self.key())
     return ret
Ejemplo n.º 8
0
 def get_by_key_name(cls, key_names, parent=None):
     if isinstance(parent, db.Model):
         parent = parent.key()
     key_names, multiple = datastore.NormalizeAndTypeCheck(
         key_names, basestring)
     keys = [
         datastore.Key.from_path(cls.kind(), name, parent=parent)
         for name in key_names
     ]
     count = 0
     if multiple:
         while count < settings.rotmodel["RETRY_ATTEMPTS"]:
             try:
                 return db.get(keys)
             except db.Timeout():
                 count += 1
                 time.sleep(count * settings.rotmodel["RETRY_INTERVAL"])
     else:
         while count < settings.rotmodel["RETRY_ATTEMPTS"]:
             try:
                 return db.get(*keys)
             except db.Timeout():
                 count += 1
                 time.sleep(count * settings.rotmodel["RETRY_INTERVAL"])
Ejemplo n.º 9
0
    def testKindsRenderingFromStats(self):
        """Test list of kinds renders in list_actions with kinds timing out."""
        self.mox = mox.Mox()
        self.mox.StubOutWithMock(Kind, 'all')

        Kind.all().AndRaise(db.Timeout('Timeout'))
        self.mox.ReplayAll()

        try:
            stat_test_kinds = ['test1', 'test2', 'test3']
            self.CreateStatEntity(stats.GlobalStat.STORED_KIND_NAME)
            for kind in stat_test_kinds:
                self.CreateStatEntity(stats.KindStat.STORED_KIND_NAME, kind)
            self.handler.get()
            kind_list = [
                stat['kind_name'] for stat in self.params['kind_stats']
            ]
            self.assertListEqual(stat_test_kinds, kind_list)
            self.mox.VerifyAll()
        finally:
            self.mox.UnsetStubs()
  def testRemotePutRemoteException(self):
    """Test that a remote exception is bubbled back up."""
    put_request = self.CreatePutRequest('remoteapp')
    put_response = datastore_pb.PutResponse()

    expected_post = self.RemoteApiRequest('Put', put_request).Encode()
    expected_exception = db.Timeout('too slow')
    remote_response = remote_api_pb.Response()
    remote_response.mutable_exception().set_contents(
        pickle.dumps(expected_exception))
    expected_response = remote_response.Encode()

    remote_api_put_stub.urlfetch.fetch(
        self.remote_url, expected_post, urlfetch.POST,
        {'X-appcfg-api-version': '1', 'auth': 'good'}, follow_redirects=False
        ).AndReturn(MockUrlfetchResult(200, expected_response))

    self.mox.ReplayAll()

    self.assertRaises(db.Timeout, self.stub.MakeSyncCall,
                      'datastore_v3', 'Put', put_request, put_response)
Ejemplo n.º 11
0
def test_timeout_3(**kwargs):
    # Never let it pass.
    counter = kwargs.get('counter')
    counter[0] += 1
    raise db.Timeout()
Ejemplo n.º 12
0
 def flush_function(self, items, options):
     FlushFunction.calls.append((items, dict(options)))
     if len(FlushFunction.calls) <= FlushFunction.timeouts:
         raise db.Timeout()
     FlushFunction.persistent_storage.extend(items)