def test_exceptions(self): """If get_version() failed, default version is set on the rref.""" for exception in (Violation(), RemoteException(ValueError())): rref = LocalWrapper(FakeGetVersion(exception), fireNow) result = self.successResultOf( rrefutil.add_version_to_remote_reference(rref, "Default")) self.assertEqual(result.version, "Default") self.assertIdentical(result, rref)
def slot_testv_and_readv_and_writev( self, storage_index, secrets, tw_vectors, r_vector, ): mutable_client = StorageClientMutables(self._http_client) we_secret, lr_secret, lc_secret = secrets client_tw_vectors = {} for share_num, (test_vector, data_vector, new_length) in tw_vectors.items(): client_test_vectors = [ TestVector(offset=offset, size=size, specimen=specimen) for (offset, size, specimen) in test_vector ] client_write_vectors = [ WriteVector(offset=offset, data=data) for (offset, data) in data_vector ] client_tw_vectors[share_num] = TestWriteVectors( test_vectors=client_test_vectors, write_vectors=client_write_vectors, new_length=new_length) client_read_vectors = [ ReadVector(offset=offset, size=size) for (offset, size) in r_vector ] try: client_result = yield mutable_client.read_test_write_chunks( storage_index, we_secret, lr_secret, lc_secret, client_tw_vectors, client_read_vectors, ) except ClientException as e: if e.code == http.UNAUTHORIZED: raise RemoteException( "Unauthorized write, possibly you passed the wrong write enabler?" ) raise return (client_result.success, client_result.reads)
def _wrap_exception(f): return Failure(RemoteException(f))
def callRemote(self, action, *args, **kwargs): try: result = yield getattr(self.local_object, action)(*args, **kwargs) defer.returnValue(result) except HTTPClientException as e: raise RemoteException(e.args)