From 10aba9978267e99715b1b19ee99f6dfb569ae25c Mon Sep 17 00:00:00 2001 From: micbou Date: Wed, 25 Jan 2017 04:40:47 +0100 Subject: [PATCH] Remove healthy check --- python/ycm/client/base_request.py | 77 ++++++------------------------ third_party/retries/retries.py | 79 ------------------------------- 2 files changed, 14 insertions(+), 142 deletions(-) delete mode 100644 third_party/retries/retries.py diff --git a/python/ycm/client/base_request.py b/python/ycm/client/base_request.py index 1bde07c8..ad8f7645 100644 --- a/python/ycm/client/base_request.py +++ b/python/ycm/client/base_request.py @@ -30,7 +30,6 @@ import urllib.parse import json from future.utils import native from base64 import b64decode, b64encode -from retries import retries from requests_futures.sessions import FuturesSession from ycm.unsafe_thread_pool_executor import UnsafeThreadPoolExecutor from ycm import vimsupport @@ -102,43 +101,20 @@ class BaseRequest( object ): handler, method, timeout = _READ_TIMEOUT_SEC ): - def SendRequest( data, handler, method, timeout ): - request_uri = _BuildUri( handler ) - if method == 'POST': - sent_data = _ToUtf8Json( data ) - return BaseRequest.session.post( - request_uri, - data = sent_data, - headers = BaseRequest._ExtraHeaders( method, - request_uri, - sent_data ), - timeout = ( _CONNECT_TIMEOUT_SEC, timeout ) ) - if method == 'GET': - return BaseRequest.session.get( - request_uri, - headers = BaseRequest._ExtraHeaders( method, request_uri ), - timeout = ( _CONNECT_TIMEOUT_SEC, timeout ) ) - - @retries( 5, delay = 0.5, backoff = 1.5 ) - def DelayedSendRequest( data, handler, method ): - request_uri = _BuildUri( handler ) - if method == 'POST': - sent_data = _ToUtf8Json( data ) - return requests.post( - request_uri, - data = sent_data, - headers = BaseRequest._ExtraHeaders( method, - request_uri, - sent_data ) ) - if method == 'GET': - return requests.get( - request_uri, - headers = BaseRequest._ExtraHeaders( method, request_uri ) ) - - if not _CheckServerIsHealthyWithCache(): - return _EXECUTOR.submit( DelayedSendRequest, data, handler, method ) - - return SendRequest( data, handler, method, timeout ) + request_uri = _BuildUri( handler ) + if method == 'POST': + sent_data = _ToUtf8Json( data ) + return BaseRequest.session.post( + request_uri, + data = sent_data, + headers = BaseRequest._ExtraHeaders( method, + request_uri, + sent_data ), + timeout = ( _CONNECT_TIMEOUT_SEC, timeout ) ) + return BaseRequest.session.get( + request_uri, + headers = BaseRequest._ExtraHeaders( method, request_uri ), + timeout = ( _CONNECT_TIMEOUT_SEC, timeout ) ) @staticmethod @@ -271,31 +247,6 @@ def _BuildUri( handler ): handler ) ) ) -SERVER_HEALTHY = False - - -def _CheckServerIsHealthyWithCache(): - global SERVER_HEALTHY - - def _ServerIsHealthy(): - request_uri = _BuildUri( 'healthy' ) - response = requests.get( request_uri, - headers = BaseRequest._ExtraHeaders( - 'GET', request_uri, bytes( b'' ) ) ) - _ValidateResponseObject( response ) - response.raise_for_status() - return response.json() - - if SERVER_HEALTHY: - return True - - try: - SERVER_HEALTHY = _ServerIsHealthy() - return SERVER_HEALTHY - except: - return False - - def MakeServerException( data ): if data[ 'exception' ][ 'TYPE' ] == UnknownExtraConf.__name__: return UnknownExtraConf( data[ 'exception' ][ 'extra_conf_file' ] ) diff --git a/third_party/retries/retries.py b/third_party/retries/retries.py deleted file mode 100644 index da7fa488..00000000 --- a/third_party/retries/retries.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2012 by Jeff Laughlin Consulting LLC -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - - -import sys -from time import sleep - -# Source: https://gist.github.com/n1ywb/2570004 - -def example_exc_handler(tries_remaining, exception, delay): - """Example exception handler; prints a warning to stderr. - - tries_remaining: The number of tries remaining. - exception: The exception instance which was raised. - """ - print >> sys.stderr, "Caught '%s', %d tries remaining, sleeping for %s seconds" % (exception, tries_remaining, delay) - - -def retries(max_tries, delay=1, backoff=2, exceptions=(Exception,), hook=None): - """Function decorator implementing retrying logic. - - delay: Sleep this many seconds * backoff * try number after failure - backoff: Multiply delay by this factor after each failure - exceptions: A tuple of exception classes; default (Exception,) - hook: A function with the signature myhook(tries_remaining, exception); - default None - - The decorator will call the function up to max_tries times if it raises - an exception. - - By default it catches instances of the Exception class and subclasses. - This will recover after all but the most fatal errors. You may specify a - custom tuple of exception classes with the 'exceptions' argument; the - function will only be retried if it raises one of the specified - exceptions. - - Additionally you may specify a hook function which will be called prior - to retrying with the number of remaining tries and the exception instance; - see given example. This is primarily intended to give the opportunity to - log the failure. Hook is not called after failure if no retries remain. - """ - def dec(func): - def f2(*args, **kwargs): - mydelay = delay - tries = reversed(range(max_tries)) - for tries_remaining in tries: - try: - return func(*args, **kwargs) - except exceptions as e: - if tries_remaining > 0: - if hook is not None: - hook(tries_remaining, e, mydelay) - sleep(mydelay) - mydelay = mydelay * backoff - else: - raise - else: - break - return f2 - return dec