<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _send_file_external_with_retry(self, http_verb, host, url, http_headers, chunk):
 """ Send chunk to host, url using http_verb. If http_verb is PUT and a connection error occurs retry a few times. Pauses between retries. Raises if unsuccessful. """

        count = 0
        retry_times = 1
        if http_verb == 'PUT':
            retry_times = SEND_EXTERNAL_PUT_RETRY_TIMES
        while True:
            try:
                return self.data_service.send_external(http_verb, host, url, http_headers, chunk)
            except requests.exceptions.ConnectionError:
                count += 1
                if count < retry_times:
                    if count == 1:  # Only show a warning the first time we fail to send a chunk
                        self._show_retry_warning(host)
                    time.sleep(SEND_EXTERNAL_RETRY_SECONDS)
                    self.data_service.recreate_requests_session()
                else:
                    raise