|
|
@@ -0,0 +1,36 @@
|
|
|
+#!/usr/bin/env python
|
|
|
+# Licensed to Cloudera, Inc. under one
|
|
|
+# or more contributor license agreements. See the NOTICE file
|
|
|
+# distributed with this work for additional information
|
|
|
+# regarding copyright ownership. Cloudera, Inc. licenses this file
|
|
|
+# to you under the Apache License, Version 2.0 (the
|
|
|
+# "License"); you may not use this file except in compliance
|
|
|
+# with the License. You may obtain a copy of the License at
|
|
|
+#
|
|
|
+# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
+#
|
|
|
+# Unless required by applicable law or agreed to in writing, software
|
|
|
+# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
+# See the License for the specific language governing permissions and
|
|
|
+# limitations under the License.
|
|
|
+
|
|
|
+import eventlet
|
|
|
+
|
|
|
+# Magically solves the Thrift/REST connection blocking problem
|
|
|
+# by monkey patching socket (http://eventlet.net/doc/patching.html).
|
|
|
+#
|
|
|
+# A cleaner solution would be to avoid this magic and find a way to have
|
|
|
+# the eventlet.green imports done at the very beginning (i.e. before 'socket').
|
|
|
+eventlet.monkey_patch(socket=True)
|
|
|
+
|
|
|
+from eventlet.green import Queue
|
|
|
+from eventlet.green import SocketServer
|
|
|
+
|
|
|
+from eventlet.green import os
|
|
|
+from eventlet.green import select
|
|
|
+from eventlet.green import ssl
|
|
|
+from eventlet.green import thread
|
|
|
+from eventlet.green import threading
|
|
|
+from eventlet.green import time
|
|
|
+from eventlet.green import socket
|